hpfLDr (1158427), страница 2
Текст из файла (страница 2)
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='JACOBI.DAT', FORM='FORMATTED')
WRITE (3,*) B
CLOSE (3)
END
Пример 3. "Красно-черная" последовательная верхняя релаксация
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 i = 1,n1
*HPF$ INDEPENDENT
do 1 j = 1,n2
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 i = 1,n1/2-1
*HPF$ INDEPENDENT
do 21 j = 1,n2/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 i = 1, n1/2-1
*HPF$ INDEPENDENT
do 22 j = 1,n2/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 i = 1,n1/2-1
*HPF$ INDEPENDENT
do 23 j = 1,n2/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 i = 1,n1/2-1
*HPF$ INDEPENDENT
do 24 j = 1,n2/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















