next up previous contents
Next: FORTRAN 77 Callee Up: Programming Example Using HPF_SUBGRID_INFO Previous: Programming Example Using HPF_SUBGRID_INFO

HPF Caller

totalleftmarginverbatim underbarchar&#;"5Fvobeyspaces "27=13 '="0D XCODE PROGRAM EXAMPLE ! Declare the data array and a verification copy INTEGER, PARAMETER :: NX = 100, NY = 100 REAL, DIMENSION(NX,NY) :: X, Y !HPF DISTRIBUTE PARTIAL_SUM(BLOCK) ! Local subgrid parameters are declared per processor ! for a rank-two array INTEGER, DIMENSION(NUMBER_OF_PROCESSORS(),2) :: & LB, UB, NUMBER !HPF DISTRIBUTE(BLOCK) :: LB1, UB1, LB2, UB2 !HPF DISTRIBUTE N(BLOCK) !HPF DISTRIBUTE X(BLOCK,BLOCK) !HPF DISTRIBUTE R(BLOCK) END END INTERFACE

! Determine result using only global HPF ! Initialize values FORALL (I=1:NX,J=1:NY) X(I,J) = I + (J-1) * NX ! Determine and report global sum PRINT *, 'GLOBAL HPF RESULT: ',SUM(X) ! Determine result using local subroutines ! Initialize values ( assume stride = 1 ) CALL HPF_SUBGRID_INFO( Y, IERR, LB=LB, UB=UB ) IF (IERR.NE.0) STOP 'ERROR!' CALL LOCAL1( LB(:,1), UB(:,1), LB(:,2), UB(:,2), NX, Y ) ! Determine and report global sum NUMBER = UB - LB + 1 CALL LOCAL2 ( NUMBER(:,1) * NUMBER(:,2) , Y , PARTIAL_SUM ) PRINT *, 'F77_LOCAL RESULT #1 : ',SUM(PARTIAL_SUM) END



Logan Ratner
Wed Mar 19 15:53:20 CST 1997