SUBROUTINE DoIt(X,Y,Z,n) IMPLICIT NONE INTEGER, INTENT(IN) :: n REAL, DIMENSION(:,:), INTENT(INOUT) :: X REAL, DIMENSION(:,:), INTENT(IN) :: Y,Z WHERE (ABS(X) .GE. 0.01) X = (Y*Z*n)/X END SUBROUTINE DoIt
and in the calling program
INTERFACE EXTRINSIC(F90_LOCAL) SUBROUTINE DoIt(X,Y,Z,n) IMPLICIT NONE INTEGER, INTENT(IN) :: n REAL, DIMENSION(:,:), INTENT(INOUT) :: X REAL, DIMENSION(:,:), INTENT(IN) :: Y,Z !HPF$ PROCESSORS, DIMENSION(10,10) :: P !HPF$ ALIGN (:,:) WITH X(:,:) :: Y, Z !HPF$ DISTRIBUTE (CYCLIC,CYCLIC) ONTO P :: X END SUBROUTINE DoIt END INTERFACE