[ HPF Home | Versions | Compilers | Projects | Publications | Applications | Benchmarks | Events | Contact ] |
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
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. 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 has the pointer attribute, 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 ith element of LB contains the declared align-target lower bound for the ith 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 ith element of UB contains the declared align-target upper bound for the ith 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 ith element of AXIS_TYPE contains information about the ith 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.
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 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', 'NORMAL'] AXIS_INFO [1, 2] [3, 1] [1, 4] NUMBER_ALIGNED 3 3 3 TEMPLATE_RANK 2 2 2 DYNAMIC false false false
©2000-2006 Rice University | [ Contact Us | HiPerSoft | Computer Science ] |