ELSEWHERE

用途

ELSEWHERE 语句是 WHERE 构造中可选的 ELSEWHERE 或掩码 ELSEWHERE 块的第一个语句。

语法

读取语法图跳过可视语法图ELSEWHERE (Mask_expr) 其中 _construct_name
mask_expr
是逻辑数组表达式
where_construct_name
是标识 WHERE 构造的名称

规则

掩码 ELSEWHERE 语句包含 mask_expr。 有关解释掩码表达式的信息,请参阅 解释掩码数组分配WHERE 构造中的每个 mask_expr 都必须具有相同的形状。

如果指定 where_construct_name,那么它必须与您在 WHERE 构造语句中指定的名称相同。

ELSEWHERE 和掩码 ELSEWHERE 语句不能是分支目标语句。

示例

以下示例显示了一个程序,该程序使用简单的掩码 ELSEWHERE 语句来更改数组中的数据:
INTEGER ARR1(3, 3), ARR2(3,3), FLAG(3, 3)

ARR1 = RESHAPE((/(I, I=1, 9)/), (/3, 3 /))
ARR2 = RESHAPE((/(I, I=9, 1, -1 /), (/3, 3 /))
FLAG = -99

! Data in arrays ARR1, ARR2, and FLAG at this point:
!
! ARR1 = |   1   4   7 |  ARR2 = |   9   6   3 |  FLAG = | -99 -99 -99 |
!        |   2   5   8 |         |   8   5   2 |         | -99 -99 -99 |
!        |   3   6   9 |         |   7   4   1 |         | -99 -99 -99 |

WHERE (ARR1 > ARR2)
  FLAG = 1
ELSEWHERE (ARR1 == ARR2)
  FLAG = 0
ELSEWHERE
  FLAG = -1
END WHERE

! Data in arrays ARR1, ARR2, and FLAG at this point:
!
! ARR1 = |   1   4   7 |  ARR2 = |   9   6   3 |  FLAG = | -1  -1   1 |
!        |   2   5   8 |         |   8   5   2 |         | -1   0   1 |
!        |   3   6   9 |         |   7   4   1 |         | -1   1   1 |

相关信息