1! Check whether nested WHEREs work 2program where_16 3 integer :: a(9) 4 integer :: b(9) 5 integer :: c(9) 6 7 a = (/0, 0, 0, 1, 1, 1, 2, 2, 2/) 8 b = (/0, 1, 2, 0, 1, 2, 0, 1, 2/) 9 c = (/0, 0, 0, 0, 0, 0, 0, 0, 0/) 10 11 where (a .eq. 0) 12 where (b .eq. 0) 13 c = 1 14 else where (b .eq. 1) 15 c = 2 16 else where 17 c = 3 18 endwhere 19 elsewhere (a .eq. 1) 20 where (b .eq. 0) 21 c = 4 22 else where (b .eq. 1) 23 c = 5 24 else where 25 c = 6 26 endwhere 27 elsewhere 28 where (b .eq. 0) 29 c = 7 30 else where (b .eq. 1) 31 c = 8 32 else where 33 c = 9 34 endwhere 35 endwhere 36 if (any (c .ne. (/1, 2, 3, 4, 5, 6, 7, 8, 9/))) & 37 call abort 38end program 39 40