ELSEWHERE
用途
ELSEWHERE 语句是 WHERE 构造中可选的 ELSEWHERE 或掩码 ELSEWHERE 块的第一个语句。
语法
- 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 |