45 lines
1.4 KiB
Plaintext
45 lines
1.4 KiB
Plaintext
PROGRAM JACH
|
|
PARAMETER (L=8, ITMAX=20)
|
|
REAL A(L,L), B(L,L)
|
|
CHPF$ DISTRIBUTE ( BLOCK, BLOCK) :: A
|
|
CHPF$ ALIGN B(I,J) WITH A(I,J)
|
|
C arrays A and B with block distribution
|
|
|
|
PRINT *, '********** TEST_JACH **********'
|
|
C nest of two INDEPENDENT loops, iteration (i,j) will be executed on
|
|
C processor, which is owner of element A(i,j)
|
|
CHPF$ INDEPENDENT
|
|
DO 1 J = 1, L
|
|
CHPF$ INDEPENDENT
|
|
DO 1 I = 1, L
|
|
A(I, J) = 0.
|
|
IF(I.EQ.1 .OR. J.EQ.1 .OR. I.EQ.L .OR. J.EQ.L) THEN
|
|
B(I, J) = 0.
|
|
ELSE
|
|
B(I, J) = ( 1. + I + J )
|
|
ENDIF
|
|
1 CONTINUE
|
|
DO 2 IT = 1, ITMAX
|
|
CHPF$ INDEPENDENT
|
|
DO 21 J = 2, L-1
|
|
CHPF$ INDEPENDENT
|
|
DO 21 I = 2, L-1
|
|
A(I, J) = B(I, J)
|
|
21 CONTINUE
|
|
|
|
CHPF$ INDEPENDENT
|
|
DO 22 J = 2, L-1
|
|
CHPF$ INDEPENDENT
|
|
DO 22 I = 2, L-1
|
|
B(I, J) = (A( I-1, J ) + A( I, J-1 ) + A( I+1, J)+
|
|
* A( I, J+1 )) / 4
|
|
22 CONTINUE
|
|
PRINT 300, IT
|
|
300 FORMAT(' IT = ',I4)
|
|
2 CONTINUE
|
|
3 OPEN (3, FILE='JACH.DAT', FORM='FORMATTED', STATUS='UNKNOWN')
|
|
WRITE (3,*) B
|
|
CLOSE (3)
|
|
END
|
|
|