[ HPF Home | Versions | Compilers | Projects | Publications | Applications | Benchmarks | Events | Contact ] |
Optional Arguments. LB, UB, AXIS_TYPE,
AXIS_INFO, NUMBER_ALIGNED,
TEMPLATE_RANK
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 point of view of its ultimate
align-target, 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. If it is a member of an aggregate variable group, then it must be an aggregate cover of the group. (See Section 3.8 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.
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):
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.
Example. Given the declarations in the example illustrating HPF_ALIGNMENT, and assuming that the actual mappings are as the directives specify, the results of HPF_TEMPLATE are:
A C D LB [1, 1] [1, 1] [1, 1] UB [40, 20] [40, 20] [40, 20] AXIS_TYPE ['NORMAL', 'NORMAL'] ['NORMAL', 'NORMAL'] ['NORMAL', 'SINGLE'] AXIS_INFO [1, 2] [3, 1] [1, 4] NUMBER_ALIGNED 3 3 3 TEMPLATE_RANK 2 2 2
©2000-2006 Rice University | [ Contact Us | HiPerSoft | Computer Science ] |