The following code will result into an unexpected end of scope
program test_case_select_forall
implicit none
integer :: i, dim=3, a(10) = 2
select case (dim)
case(3)
forall(i=1:10)
a(i) = a(i) **2
end forall
case default
call abort()
end select
end program test_case_select_forall
The following code will result into an unexpected end of scope