PROGRAM LAPLACE INTEGER N,Nsteps PARAMETER(N=256) PARAMETER(Nsteps = 100) INTEGER i,j,k REAL A(N,N),B(N,N) !HPF$ PROCESSORS PROC(4) !HPF$ TEMPLATE TEMPA(N,N) !HPF$ TEMPLATE TEMP(N,N) !HPF$ DISTRIBUTE TEMPA(BLOCK,*) ONTO PROC !HPF$ DISTRIBUTE TEMP(BLOCK,*) ONTO PROC !HPF$ ALIGN A(i,j) with TEMPA(i,j) !HPF$ ALIGN B(i,j) with TEMP(i,j) FORALL (i=1:N,j=1:N) A(i,j) = 8.0 FORALL (i=2:N-1,j=2:N-1) A(i,j) = 2.0 B = A call pcrc_clock(0) DO k = 1, Nsteps FORALL (i=2:N-1,j=2:N-1) B(i,j) = (A(i,j-1) + A(i,j+1))*0.25 FORALL (i=2:N-1,j=2:N-1) B(i,j)=B(i,j)+(A(i-1,j)+ A(i+1,j))*0.25 A=B END DO call pcrc_clock(1) print *, 'Final grid looks like' ! DO I= 1, N ! WRITE(*,101) (A(I,J),J=1,N) ! END DO STOP 101 FORMAT(12F9.3) END