FORALL 构造
FORALL 构造对子对象组 (尤其是数组元素) 执行赋值。
与 WHERE 构造不同, FORALL 对数组元素,数组部分和子串执行赋值。 此外, FORALL 构造中的每个赋值都不需要符合先前的赋值。 FORALL 构造可以包含嵌套的 FORALL 语句, FORALL 构造, WHERE 语句和 WHERE 构造。
-qxlf2003=autorealloc 不适用于 FORALL 构造。 在 FORALL 构造内的赋值语句期间,不会发生可分配变量的重新分配。
指令规定,任务中的左右两侧必须位于 INDEPENDENT指令规定,一个结构内左右两侧的分配 FORALL结构中的左右两侧不能重叠。 
- FORALL_construct_statement
- 请参阅 FORALL (构造) 以获取语法详细信息。
- END_FORALL_statement
- 请参阅 END (构造) 以获取语法详细信息。
- forall_body
- 是下列一个或多个语句或构造:
- forall_assignment
- 是 assignment_statement 或 pointer_assignment_statement
forall_body 中引用的任何过程,包括由定义的操作,定义的分配或最终化所引用的过程都必须是纯粹的。
如果 FORALL 语句或构造嵌套在 FORALL 构造中,那么内部 FORALL 语句或构造无法重新定义外部 FORALL 构造中使用的任何 index_name 。
虽然不能多次将原子对象分配给同一语句或在同一语句中更改其关联状态,但同一 FORALL 构造中的不同赋值语句可以重新定义或重新关联原子对象。 此外, WHERE 构造中的每个 WHERE 语句和赋值语句都必须遵循以下限制。
如果指定了 FORALL_construct_name ,那么它必须同时出现在 FORALL 语句和 END FORALL 语句中。 END FORALL 语句和 FORALL 构造中的任何语句都不能是分支目标语句。
