On Tue, Nov 15, 2022 at 05:13:19PM -0800, Steve Kargl via Fortran wrote: > > This patch allows the above to compile and execute. > It has only had some light testing, and I do not know > if nested forall and implied-do loops do work. Feel > free to commit as I cannot. >
Appears to work for nested forall (at least in the execution part of a subprogram). ! From Section 6.9 of MR&C program foo implicit none integer, parameter :: n = 9 integer i, j integer k integer a(n,n), b(n,n) a = reshape([(i,i=1,n**2)], [n,n]) do k = 1, 9 print '(*(I3))', a(k,:) end do print * b = a forall (i = 1:n-1) forall (j = i+1:n) a(i,j) = a(j,i) ! a is a rank-2 array end forall end forall do k = 1, 9 print '(*(I3))', a(k,:) end do print * a = b forall (integer :: ii = 1:n-1) forall (integer :: jj = ii+1:n) a(ii,jj) = a(jj,ii) ! a is a rank-2 array end forall end forall do k = 1, 9 print '(*(I3))', a(k,:) end do print * end program foo -- Steve