Next:
HPF_DISTRIBUTION(DISTRIBUTEEAXIS_TYPE, AXIS_INFO, Up: Specifications of Library Previous: HPF_ALIGNMENT(ALIGNEELB, UB,


HPF_TEMPLATE(ALIGNEE, TEMPLATE_RANK, LB, UB, AXIS_TYPE, AXIS_INFO, NUMBER_ALIGNED, DYNAMIC)

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 Jul 21 17:05:43 CDT 1994