! Check to ensure mask is calculated first in WHERE | |
! statements. | |
program where_18 | |
integer :: a(4) | |
integer :: b(3) | |
integer :: c(3) | |
equivalence (a(1), b(1)), (a(2), c(1)) | |
a = (/1, 1, 1, 1/) | |
where (b .eq. 1) | |
c = 2 | |
elsewhere (b .eq. 2) | |
c = 3 | |
endwhere | |
if (any (a .ne. (/1, 2, 2, 2/))) & | |
call abort | |
a = (/1, 1, 1, 1/) | |
where (c .eq. 1) | |
b = 2 | |
elsewhere (b .eq. 2) | |
b = 3 | |
endwhere | |
if (any (a .ne. (/2, 2, 2, 1/))) & | |
call abort | |
end program |