PROGRAM JACOBI
REAL T(0:1001), TNEW(1000), TOL
INTEGER N
TOL=1.0E-5
PRINT*, 'Enter N'
READ*, N
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(I)
SHARED(N)
DO I = 1, N
T(I) = 0.0
ENDDO
!$OMP END PARALLEL DO
T(1) = 1
T(N) = 100
40 CONTINUE
!$OMP PARALLEL DO
DEFAULT(SHARED) PRIVATE(I) SHARED(N)
DO I = 2, N-1
TNEW(I) = (T(I-1)+T(I+1))/2.0
ENDDO
!$OMP END PARALLEL DO
DIFMAX = 0.0
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(DIFF, I)
!$OMP& SHARED(N)
REDUCTION(MAX:DIFMAX)
DO I = 1, N
DIFF = ABS(TNEW(I)-T(I))
DIFMAX = MAX(DIFF,DIFMAX)
T(I) = TNEW(I)
ENDDO
!$OMP END PARALLEL
DO
IF
(DIFMAX .GT. TOL) GOTO 40
DO 50 I = 1, N,1
WRITE(UNIT=*,FMT=*) TNEW(I)
50
CONTINUE
END