The statement is a Fortran 90 statement that conveys parallelism
in a manner similar to array assignment described in the previous section.
The compiler adds a conditional statement to mask the elements of
the array's index space that are assigned or not assigned a particular
value. For example, given that X and Y are distributed arrays,
the following WHERE statement produces code similar to
the Fortran 77 output shown:
WHERE(X/=0) Y=X
The following code would be generated:
call set_bound(x_dist,1,1,16,1,llb,lub)
do i1 = llb, lub
if (x(i1) .ne. 0) then
y(i1) = x(i1)
endif
enddo
The generated code is similar to the node code for an array expression, with the addition of the conditional within the DO loop.