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