# ELSE WHERE

Statement: Marks the beginning of an ELSE WHERE block within a WHERE construct.

[name:]WHERE (mask-expr1)

[where-body-stmt]...

[ELSE WHERE(mask-expr2) [name]

[where-body-stmt]...]

[ELSE WHERE[name]

[where-body-stmt]...]

END WHERE [name]

name | Is the name of the WHERE construct.
mask-expr1, mask-expr2 | Are logical array expressions (called mask expressions).
where-body-stmt | Is one of the following: An assignment statement of the form: array variable = array expression. The assignment can be a defined assignment only if the routine implementing the defined assignment is elemental. A WHERE statement or construct

## Description

Every assignment statement following the ELSE WHERE is executed as if it were a WHERE statement with ".NOT. mask-expr1". If ELSE WHERE specifies "mask-expr2", it is executed as "(.NOT. mask-expr1) .AND. mask-expr2" during the processing of the ELSE WHERE statement.

## Example

    WHERE (pressure <= 1.0)
      pressure = pressure + inc_pressure
      temp = temp - 5.0
    ELSEWHERE
      raining = .TRUE.
    END WHERE

The variables `temp`, `pressure`, and `raining` are all arrays.

Parent topic: E to F

## See Also

WHERE