روش ژاکوبی در فرترن

omid20110

کاربر فعال تالار اسلام و قرآن ,
کاربر ممتاز
سلام به همگی من این کد رو تو فرترن نوشتم تا یک دستگاه معادلات خطی رو با استفاده از روش تکرار ژاکوبی حل کنه، اما نمیدونم کجای کد اشکال داره!
ممنون میشم راهنمایی کنید:
PROGRAM JACOBI
IMPLICIT NONE
REAL, DIMENSION:), :), ALLOCATABLE::A
REAL, DIMENSION:)), ALLOCATABLE::B,Xnew,Xold
REAL::SUM1=0,SUM3=0,ERRORMAX,ERROR
INTEGER:: N,i,j
"(OPEN(13,file="output for Xnew(i).dat
PRINT*,"Please Enter Number of EQUATIONS:"
READ*,N
ALLOCATE (A(N,N),B(N),Xnew(N),Xold(N))
Do i=1,N
Do j=1,N
PRINT '(1X,"Please Enter A(", 2I2,")")',i,j
READ*, A(i,j)
END DO
PRINT '(1X,"Please Enter B(", I2,")")',i
READ*, B(i)
END DO
PRINT*,"PLEASE ENTER AMOUNT OF ERROR MAX:"
READ*,ERRORMAX
DO i=1,N
Xold(i)=0
END DO
ERROR=0
DO WHILE((ERROR/N)<=ERRORMAX)
DO i=1,N

IF(i==1)THEN
SUM1=0
END IF
IF(i==N)THEN
SUM3=0
END IF
IF(i/=1)THEN
SUM1=0

DO j=1,i-1
SUM1=SUM1+A(i,j)*Xold(j)
END DO
END IF
IF(i/=N)THEN
SUM3=0
DO j=i+1,N
SUM3=SUM3+A(i,j)*Xold(j)
END DO
END IF
Xnew(i)=(-SUM1-SUM3+B(i))/A(i,i)
ERROR=ERROR+(Xnew(i)-Xold(i))
END DO

Xold(i)=Xnew(i)
END DO


DO i=1,N
PRINT*,"i=",i,"Xnew(i)=",Xnew(i)
WRITE(13,*)Xnew(i)
END DO
PAUSE
END PROGRAM
 
بالا