hpfLDe (1158338), страница 2
Текст из файла (страница 2)
DO 1 J = 1, K
*HPF$ INDEPENDENT
DO 1 I = 1, K
A(I,J) = 0.
IF(I.EQ.1 .OR. J.EQ.1 .OR. I.EQ.K .OR. J.EQ.K) THEN
B(I,J) = 0.
ELSE
B(I,J) = 1. + I + J
ENDIF
1 CONTINUE
DO 2 IT = 1, ITMAX
*HPF$ INDEPENDENT
DO 21 J = 2, K-1
*HPF$ INDEPENDENT
DO 21 I = 2, K-1
A(I,J) = B(I,J)
21 CONTINUE
*HPF$ INDEPENDENT
DO 22 J = 2, K-1
*HPF$ INDEPENDENT
DO 22 I = 2, K-1
B(I,J) = (A(I-1,J) + A(I,J-1) + A(I+1,J) + A(I,J+1)) / 4
22 CONTINUE
2 CONTINUE
3 OPEN (3, FILE='JACH.DAT', FORM='FORMATTED')
WRITE (3,*) B
CLOSE (3)
END
Example 3. Red-black successive over-relaxation
PROGRAM REDBLACK
PARAMETER (N1 = 20,N2 = 10)
REAL A(N1,N2),W
INTEGER ITMAX
*HPF$ DISTRIBUTE (BLOCK,BLOCK) :: A
ITMAX = 20
W = 0.5
*HPF$ INDEPENDENT
DO 1 J = 1,N2
*HPF$ INDEPENDENT
DO 1 I = 1,N1
IF (I.EQ.J) THEN
A(I,J) = N1+2
ELSE
A(I,J) = (-(1.))
ENDIF
1 CONTINUE
DO 2 IT = 1,ITMAX
*HPF$ INDEPENDENT
DO 21 J = 1,N2/2-1
*HPF$ INDEPENDENT
DO 21 I = 1,N1/2-1
A(2*I+1,2*J+1) = W/4*(A(2*I,2*J+1)+A(2*I+2,2*J+1)+
+ A(2*I+1,2*J)+A(2*I+1,2*J+2))+(1-W)*A(2*I+1,2*J+1)
21 CONTINUE
*HPF$ INDEPENDENT
DO 22 J = 1, N2/2-1
*HPF$ INDEPENDENT
DO 22 I = 1,N1/2-1
A(2*I,2*J) = W/4*(A(2*I-1,2*J)+A(2*I+1,2*J)+A(2*I,2*J-1)+
+ A(2*I,2*J+1))+(1-W)*A(2*I,2*J)
22 CONTINUE
*HPF$ INDEPENDENT
DO 23 J = 1,N2/2-1
*HPF$ INDEPENDENT
DO 23 I = 1,N1/2-1
A(2*I,2*J+1) = W/4*(A(2*I-1,2*J+1)+A(2*I+1,2*J+1)+A(2*I,2*J)
+ +A(2*I,2*J+2))+(1-W)*A(2*I,2*J+1)
23 CONTINUE
*HPF$ INDEPENDENT
DO 24 J = 1,N2/2-1
*HPF$ INDEPENDENT
DO 24 I = 1,N1/2-1
A(2*I+1,2*J) = W/4*(A(2*I,2*J)+A(2*I+2,2*J)+A(2*I+1,2*J-1)+
+ A(2*I+1,2*J+1))+(1-W)*A(2*I+1,2*J)
24 CONTINUE
PRINT *,'IT= ',IT
2 CONTINUE
END