For example,
REAL, DIMENSION(100,100) :: A CHARACTER(LEN=9), DIMENSION(2) :: DISTS INTEGER, DIMENSION(2) :: BLK_SIZE, PSHAPE INTEGER :: PRANK !HPF$ PROCESSORS, DIMENSION(4) :: P !HPF$ DISTRIBUTE (BLOCK,*) ONTO P :: A CALL HPF_DISTRIBUTION(A,AXIS_TYPE = DISTS, & AXIS_INFO = BLK_SIZE,& PROCESSORS_RANK = PRANK, & PROCESSORS_SHAPE = PSHAPE)
Here DISTS is equal to (/'BLOCK','COLLAPSED'/). Note: DISTS must be declared in such a way thats its result can be understood. There are 3 possible values that the function can return in its AXIS_TYPE argument: BLOCK, CYCLIC and COLLAPSED; this means that in order to return a unique result DISTS must be at least 2 characters long.
BLK_SIZE(1) is equal to 50. BLK_SIZE(2) is compiler dependent because the second dimension of A has been collapsed.
PRANK is 1 and PSHAPE(1) is 4. PSHAPE(2) has not been assigned a value.
The other procedures in this class follow a similar pattern.
Return to corresponding overview page