!program to test nested forall construct and forall mask | |
program test | |
implicit none | |
integer a(4,4) | |
integer i, j | |
do i=1,4 | |
do j=1,4 | |
a(j,i) = j-i | |
enddo | |
enddo | |
forall (i=2:4, a(1,i).GT.-2) | |
forall (j=1:4, a(j,2).GT.0) | |
a(j,i) = a(j,i-1) | |
end forall | |
end forall | |
if (any (a.ne.reshape ((/0,1,2,3,-1,0,2,3,-2,-1,0,1,-3,-2,-1,0/),& | |
(/4,4/)))) call abort | |
end | |