Next:
IALL(ARRAYDIM, MASK) Up: Specifications of Library Previous: HPF_TEMPLATE(ALIGNEETEMPLATE_RANK, LB,


HPF_DISTRIBUTION(DISTRIBUTEE, AXIS_TYPE, AXIS_INFO, PROCESSORS_RANK, PROCESSORS_SHAPE)

Optional Arguments. AXIS_TYPE, AXIS_INFO, PROCESSORS_RANK, PROCESSORS_SHAPE
Description. The HPF_DISTRIBUTION subroutine returns information regarding the distribution of the ultimate align-target associated with a variable.
Class. Mapping inquiry subroutine.
Arguments.

DISTRIBUTEE 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 DISTRIBUTEE is a pointer, information about the distribution 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.

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 9 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 DISTRIBUTEE is ultimately aligned; this is the value returned by HPF_TEMPLATE in TEMPLATE_RANK). It is an INTENT (OUT) argument. Its i element contains information on the distribution of the i axis of that align-target. The following values are defined by HPF (implementations may define other values):

'BLOCK'
The axis is distributed BLOCK. The corresponding element of AXIS_INFO contains the block size.
'COLLAPSED'
The axis is collapsed (distributed with the ``*'' specification). The value of the corresponding element of AXIS_INFO is processor dependent.
'CYCLIC'
The axis is distributed CYCLIC. The corresponding element of AXIS_INFO contains the block size.

AXIS_INFO (optional) must be a rank one array of type default integer, and size at least equal to the rank of the align-target to which DISTRIBUTEE is ultimately aligned (which is returned by HPF_TEMPLATE in TEMPLATE_RANK). It is an INTENT (OUT) argument. The i element of AXIS_INFO contains the block size in the block or cyclic distribution of the i axis of the ultimate align-target of DISTRIBUTEE; if that axis is a collapsed axis, then the value is processor dependent.

PROCESSORS_RANK (optional) must be scalar and of type default integer. It is set to the rank of the processor arrangement onto which DISTRIBUTEE is distributed. It is an INTENT (OUT) argument.

PROCESSORS_SHAPE (optional) must be a rank one array of type default integer and of size at least equal to the value, , returned in PROCESSORS_RANK. It is an INTENT (OUT) argument. Its first elements are set to the shape of the processor arrangement onto which DISTRIBUTEE is mapped. (It may be necessary to call HPF_DISTRIBUTION twice, the first time to obtain the value of PROCESSORS_RANK in order to allocate PROCESSORS_SHAPE.)
Example. Given the declarations in the example of Section
, and assuming that the actual mappings are as the directives specify, the results of HPF_DISTRIBUTION are:



Next:
IALL(ARRAYDIM, MASK) Up: Specifications of Library Previous: HPF_TEMPLATE(ALIGNEETEMPLATE_RANK, LB,

paula@erc.msstate.edu
Thu Jul 21 17:05:43 CDT 1994