解释 FORALL 语句
- 按任意顺序对每个 forall_triplet_spec 的 下标 和 stride 表达式进行求值。 index_name 值的所有可能的配对构成组合集。 例如,给定以下语句:
FORALL (I=1:3,J=4:5) A(I,J) = A(J,I)I和J的组合集为:{(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)}-1 和 -qnozerosize 编译器选项不会影响此步骤。
- 按任意顺序对 scalar_mask_expr 中的组合集进行求值,生成一组活动组合 ( scalar_mask_expr 求值为
.TRUE.的组合)。 例如,如果掩码 (I+J.NE.6) 应用于上述集合,那么活动组合的集合为:{(1,4),(2,5),(3,4),(3,5)} - 对于 assignment_statement,请按任意顺序对右侧 表达式 中的所有值以及左侧 变量 中的所有下标,条带和子串界限进行求值,以获取 index_name 值的所有活动组合。
对于 pointer_assignment,以任何顺序确定将作为指针赋值的目标的内容,并对指针中所有活动组合的 index_name 值的所有下标,条带和子串界限进行求值。 无论目标是否为指针,目标的确定都不包括对其值的求值。
- 对于 assignment_statement,按任意顺序将计算的 表达式 值分配给 index_name 值的所有活动组合的相应 变量 实体。
对于 pointer_assignment,请按任意顺序将所有目标与 index_name 值的所有活动组合的相应指针实体相关联。