Translating at constructs

A translation for the at construct is given in Figure
A.18. Note that pre-translation will have reduced
to a simple expression.

The coordinate and local subscript associated with the specified
location is returned by the method, location(), which is a member
of the Range class. It takes one argument, the global subscript,
and returns an object of class Location (see Figure
A.59)

The global index for the index is the value of
. This value is used in evaluating the global
index expression .

The local subscript for the index is the value of
. This value is used in computation of offsets
generated when is used as an array subscript.

The shift step for the index is the value of
. This value is used in computation of offsets
associated with shifted index subscripts.

The dimension for the index is the value of
. One possible later use of this value is in computation
the distribution group of a section subscripted with .

If the process dimension dim is not an active dimension
of apg at the time the method restrict()
is invoked, it will throw a DimensionNotInGroupException.

[Variables like
,
, etc, should be
final, so that they can be accessed in local classes defined inside the at construct? Unclear whether distributed indices
should be useable inside such classes, but no immediately obvious
reason to forbid it.]