Next: HPF_DISTRIBUTION(DISTRIBUTEEAXIS_TYPE, AXIS_INFO,
Up: Specifications of Library
Previous: HPF_ALIGNMENT(ALIGNEELB, UB,
Optional Arguments. LB, UB, AXIS_TYPE,
AXIS_INFO, NUMBER_ALIGNED, TEMPLATE_RANK, DYNAMIC
Description. The HPF_TEMPLATE subroutine returns information regarding the
ultimate align-target associated with a variable;
HPF_TEMPLATE returns information concerning the variable from the template's
point of view (assuming the alignment is to a template rather than to
an array), while HPF_ALIGNMENT returns information from the variable's point
of view.
Class. Mapping inquiry subroutine.
Arguments.
ALIGNEE may be of any type. It may be scalar or array valued.
It must not be an assumed-size array.
It must not be a structure component.
If it is a member of an aggregate variable group, then it must be an
aggregate cover of the group. (See Section for the
definitions of ``aggregate variable group'' and ``aggregate cover.'')
It must not be a pointer that is disassociated or an allocatable array
that is not allocated.
It is an INTENT (IN) argument.
If ALIGNEE is a pointer, information about the
alignment of its target is returned.
The target must not be an assumed-size dummy argument
or a section of an assumed-size dummy argument.
If the target is (a section of) a member of an aggregate variable
group, then the member must be an aggregate cover of the group.
The target must not be a structure component, but the pointer
may be.
TEMPLATE_RANK (optional) must be scalar and of type default integer.
It is an INTENT (OUT) argument.
It is set to the
rank of the ultimate align-target. This can be
different from the rank of the ALIGNEE, due to collapsing and
replicating.
LB (optional) must be of type default integer and of rank one.
Its size must be at least equal to the rank of the
align-target to which ALIGNEE is ultimately aligned; this is the
value returned in TEMPLATE_RANK.
It is an INTENT (OUT) argument.
The i element of LB contains the
declared align-target lower bound for the i template axis.
UB (optional) must be of type default integer and of rank one.
Its size must be at least equal to the rank of the
align-target to which ALIGNEE is ultimately aligned; this is the
value returned in TEMPLATE_RANK.
It is an INTENT (OUT) argument.
The i element of UB contains the
declared align-target upper bound for the i template axis.
AXIS_TYPE (optional) must be a rank one array of type default character.
It may be of any length, although it must be of length
at least 10 in order to contain the complete value. Its elements
are set to the values below as if by a character intrinsic assignment statement.
Its size must be at least equal to the rank of the
align-target to which ALIGNEE is ultimately aligned; this is the
value returned in TEMPLATE_RANK.
It is an INTENT (OUT) argument.
The i element of AXIS_TYPE contains information about the i
axis of the align-target. The following values are defined by HPF
(implementations may define other values):
- 'NORMAL'
- The align-target
axis has an axis of ALIGNEE aligned to it.
For elements of AXIS_TYPE assigned this
value, the corresponding element of
AXIS_INFO is set to
the number of the axis of ALIGNEE aligned to this align-target axis.
- 'REPLICATED'
- ALIGNEE is replicated along
this align-target axis. For elements of AXIS_TYPE assigned this value, the corresponding
element of AXIS_INFO is set to the number of
copies of ALIGNEE along this align-target
axis.
- 'SINGLE'
- ALIGNEE is aligned with one coordinate of
the align-target axis.
For elements of AXIS_TYPE assigned this
value, the corresponding element of
AXIS_INFO is set to
the align-target coordinate to which ALIGNEE is aligned.
AXIS_INFO (optional) must be of type default integer and of rank one.
Its size must be at least equal to the rank of the
align-target to which ALIGNEE is ultimately aligned; this is the
value returned in TEMPLATE_RANK.
It is an INTENT (OUT) argument.
See the description of AXIS_TYPE above.
NUMBER_ALIGNED (optional) must be scalar and of type default integer.
It is an INTENT (OUT) argument.
It is set to the
total number of variables aligned to the ultimate align-target.
This is the number of variables that are moved if the align-target
is redistributed.
DYNAMIC (optional) must be scalar and of type default logical.
It is an INTENT (OUT) argument.
It is set to true if the align-target has the DYNAMIC
attribute, and to false otherwise.
Example.
Given the declarations in the example of Section ,
and assuming that the actual mappings are as the directives specify,
the results of HPF_TEMPLATE are:
Next: HPF_DISTRIBUTION(DISTRIBUTEEAXIS_TYPE, AXIS_INFO,
Up: Specifications of Library
Previous: HPF_ALIGNMENT(ALIGNEELB, UB,
paula@erc.msstate.edu
Thu Dec 8 16:17:11 CST 1994