Rule R215 of the Fortran 90 standard for executable-construct is extended to include the forall-construct.
XBNF
forall-construct -to -rule
to
forall-body-stmt -to -rule
to
To determine the set of permitted values for an index-name, we
introduce some simplifying notation. In the forall-triplet-spec, let
If stride is missing, it is as if it were present with the value
1. The set of permitted values is determined on entry to the construct
and is
Each assignment nested within a FORALL construct
assigns to memory locations specified by the
forall-assignment for permitted values of the index-name
variables. A program that causes multiple values to be assigned to the
same location by a single statement is not HPF-conforming and
therefore has no defined meaning.
An HPF-conforming program may, however, assign to the same location in
syntactically different assignment statements.
This is a semantic constraint rather than a syntactic
constraint, however; in general, it cannot be checked during compilation.
to is FORALL forall-header
forall-body-stmt
[ forall-body-stmt ] ...
END FORALL
to is forall-assignment
-to or where-stmt
-to or where-construct
-to or forall-stmt
-to or forall-construct
XBNF
.
be the first subscript (``lower bound'');
be the second subscript (``upper bound'');
be the stride; and
be
.
,
. The
expression stride must not have the value 0. If for some index-name
, no forall-body-stmt is executed.
Next: Interpretation of the
Up: The FORALL Construct
Previous: The FORALL Construct