next up previous contents
Next: Subgrid Inquiries Involving Embedding Up: Global HPF Subgrid Inquiry Previous: Global HPF Subgrid Inquiry 

HPF_SUBGRID_INFO (ARRAY, IERR, DIM, LB, UB, STRIDE, 
LB_EMBED, UB_EMBED, AXIS_MAP)

Description.        Gives local information about local subgrid allocation onto each processor of a distributed array;
                            callable   from a global HPF routine.

Class.                  Inquiry subroutine.

Arguments.
 
ARRAY   is a nonsequential array of any type, size, shape, or mapping. It is an INTENT (IN) argument.
IERR is a scalar integer of default kind. It is an INTENT (OUT) argument. Its return value is zero upon successful return and nonzero otherwise. Errors result if local subgrids cannot be expressed as array sections of ARRAY

If any of the optional arguments LB_EMBED, UB_EMBED, or AXIS_MAP is present, then a nonzero value is also returned if the compiler does not organize the local data in serial memory by sequence associating a larger ``embedding'' array (see Section G.3.1 below for more explanation). 

DIM (optional) is a scalar integer of default kind. It is an INTENT (IN) argument. DIM indicates the axis along which return values are desired. If DIM is not present, values are returned for all axes. 
LB (optional) is an INTENT (OUT), default integer array. If this argument is present, and if the value returned in IERR is zero, the values returned in array LB are the lower bounds in global coordinates of each processor's subgrid, along one (if DIM is present) or each dimension of ARRAY
UB (optional) is an INTENT (OUT), default integer array. If this argument is present, and if the value returned in IERR is zero, the values returned in array UB are the upper bounds in global coordinates of each processor's subgrid, along one (if DIM is present) or each dimension of ARRAY
STRIDE (optional) is an INTENT (OUT), default integer array. If this argument is present, and if the value returned in IERR is zero, the values returned in array STRIDE are the strides in local memory between elements of each processor's subgrid, along one (if DIM is present) or each dimension of ARRAY
LB_EMBED (optional) is an INTENT (OUT), default integer array. If this argument is present, and if the value returned in IERR is zero, the values returned in array LB_EMBED are the lower bounds in global coordinates of the actual global array elements allocated on each processor, possibly a superset of the user-visible subgrid, along one (if DIM is present) or each dimension of ARRAY
UB_EMBED (optional) is an INTENT (OUT), default integer array. If this argument is present, and if the value returned in IERR is zero, the values returned in array UB_EMBED are the upper bounds in global coordinates of the actual global array elements allocated on each processor, possibly a superset of the user-visible subgrid, along one (if DIM is present) or each dimension of ARRAY
AXIS_MAP (optional) is a rank 2, INTENT (OUT), default integer array. If this argument is present, its shape must be at least [n,r], where n is the number of processors and r is the rank of ARRAY

If the value returned in IERR is zero, the values returned in AXIS_MAP(i,1:r) represent the numbers of the axes of the subgrid on processor i from fastest varying to slowest varying, and form a permutation of the sequence 1,2,...,r

 
 

For the last six arguments, LB, UB, STRIDE, LB_EMBED, UB_EMBED, and AXIS_MAP, each array has a first axis of extent at least n, where n is the number of processors, and the first n indices of that axis of each array must be distributed (perhaps via an explicit CYCLIC or BLOCK distribution) one index per processor. If a second dimension is needed, it should be a collapsed axis of extent at least equal to the rank of ARRAY.

If HPF_SUBGRID_INFO is called, and the elements of ARRAY that are local to any particular processor are not representable as an array section of the global user array, then a nonzero value is returned for IERR. Otherwise, if any of the optional arguments LB, UB, or STRIDE is present, then the lower bounds, upper bounds, or strides, respectively, that describe the local array sections are returned in terms of one-based, global coordinates.

 



next up previous contents
Next: Subgrid Inquiries Involving Embedding Up: Global HPF Subgrid Inquiry Previous: Global HPF Subgrid Inquiry