PROCESSORS P(NP, NP)
RANGE X(N), Y(N)
DISTRIBUTE X ONTO P(BLOCK, *)
DISTRIBUTE Y ONTO P(*, BLOCK)
SHADOW (1) X, Y
REAL A X, Y
ON (P)
! Initialize the array...
OVERALL(I = X, J = Y)
A [I, J] = ...
ENDOVERALL
DO ITER = 1, NITER
DO ICOLOUR = 0, 1
CALL DA_WRITE_HALO(A, (/CYCL, CYCL/), (/1, 1/))
OVERALL(I = X)
OVERALL(J = Y(MOD(ICOLOUR + I, 2) : : 2))
A [I, J] = (A [I, J - 1] + A [I, J +1] + &
& A [I - 1, J] + A [I + 1,J]) / 4
ENDOVERALL
ENDOVERALL
ENDDO
ENDDO
ENDON
0 comments:
Post a Comment