Consider the following code fragment / loop:
INTEGER :: i, n
REAL, DIMENSION(:,:), ALLOCATABLE :: A, B, C
!HPF$ PROCESSORS, DIMENSION(10,10) :: P
!HPF$ ALIGN (:,:) WITH A(:,:) :: B, C
!HPF$ DISTRIBUTE (CYCLIC,CYCLIC) ONTO P :: A
!
! ... C, B, A and N set up somehow
!
!HPF$ INDEPENDENT, NEW(i)
DO j = LBOUND(A,1),UBOUND(A,1),1
DO i = LBOUND(A,2),UBOUND(A,2),1
IF (ABS(A(i,j)) .GE. 0.01) THEN
A(i,j) = (B(i,j)*C(i,j)*n)/A(i,j)
ENDIF
END DO
END DO
Since INDEPENDENT is rarely implemented, recode the loop as a call to a Fortran 90 extrinsic procedure (F90_LOCAL) in order to exploit parallelism.
State the interface as it would appear in the HPF calling program.