!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