Where¶
Where, masks the evaluation of expression and assignments of values in array
assignment statements, a stmt node.
Declaration¶
Syntax¶
Where(expr test, stmt* body, stmt* orelse)
Arguments¶
test contains condition or expression to be tested.
body contains statement body.
orelse contains the else condition if where is not true or served.
Return values¶
None.
Description¶
Where statement masks the evaluation of expression and assignments of values in array assignment statements. It does this according to the value of logical array expression.
If the where statement is not the first statement of where construct, it can
be used as the terminal statement of a do or do while construct.
Types¶
Not applicable.
Examples¶
program main
real :: x(10)
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
where (x/=5)
x = 32.0
elsewhere
x = 0.0
end where
print *, x
end program
ASR: