! Check whether nested WHEREs work program where_16 integer :: a(9) integer :: b(9) integer :: c(9) a = (/0, 0, 0, 1, 1, 1, 2, 2, 2/) b = (/0, 1, 2, 0, 1, 2, 0, 1, 2/) c = (/0, 0, 0, 0, 0, 0, 0, 0, 0/) where (a .eq. 0) where (b .eq. 0) c = 1 else where (b .eq. 1) c = 2 else where c = 3 endwhere elsewhere (a .eq. 1) where (b .eq. 0) c = 4 else where (b .eq. 1) c = 5 else where c = 6 endwhere elsewhere where (b .eq. 0) c = 7 else where (b .eq. 1) c = 8 else where c = 9 endwhere endwhere if (any (c .ne. (/1, 2, 3, 4, 5, 6, 7, 8, 9/))) & call abort end program