Hello guys! hope you are doing fine,
I would go straight to my question, i am trying to solve gaussian elimination using fortran and i saw a book in our library that has the codes and i tried it in fortran 95
[size=7:1700fff931] C GAUSSIAN ELIMINATION METHOD FOR A SYSTEM OF LINEAR EQUATIONS C C C A(I,J) REPRESENTS THE ELEMENTS OF THE AUGMENTED MATRIX BEING C REDUCED BY THE GAUSSIAN ELIMINATION METHOD A1(I,J) ARE THE C ELEMENTS OF THE ORIGINAL AUGMENTED MATRIX , X(I) ARE THE C UNKNOWN VARIABLES, IS THE NUMBER OF EQUATIONS, M IS THE C NUMBER OF COLUMNS IN THE AUGMENTED MATRIX, K REPRESENTS THE C NUMBER OF THE PIVOT ROW AND B(I) REPRESENTS THE CONSTANTS ON C THE RIGHT-HAND SIDE OF THE GIVEN SYSTEM OF EQUATIONS C C DIMENSION A(10,11),A1(10,11),X(10) C C ENTER THE COEFFICIANT MATRIX C READ(5,)N M=N+1 READ(5,)((A(I,J),J=1,M),I=1,N) DO 1 I=1,N DO 1 J=1,M 1 A1(I,J)=A(I,J) C C CALL SUBROUTINE TO SOLVE THE SYSTEM OF EQUATIONS C CALL GAUSS(N,A,X) WRITE(6,9) 9 FORMAT(2X, 'THE SOLUTION TO THE EQUATIONS IS:'//) DO 10 I=1,N 10 WRITE(6,11)I,X(I) 11 FORMAT(2X, 'X(',I1,')=',F12.5) WRITE(6,12) 12 FORMAT(//2X,'THE CONSTANT VECTOR THE EQUATIONS IS:'//) C C CALCULATE THE CONSTANT VECTOR B USING THE SOLUTION C OBTAINED TO CHECK THE ACCURACY OF THE RESULTS C DO 13 I=,N Y=0.0 DO 14 J=1,N 14 Y=Y+X(J)*A1(I,J) WRITE(6,15)I,Y 15 FORMAT(2X,'B(',I1,')=',F12.5) 13 CONTINUE STOP END C C SUBORDINATE GAUSS(N,A,X) DIMENSION A(10,11),X(10) N1=N-1 M=N+1 C C FIND THE ROW WITH THE LARGEST PIVOT ELEMENT C DO 2 K=1,N1 K1=K+1 K2=K B0=ABS(A(K,K)) DO 3 I=K1,N B1=ABS(A(I,K)) IF((B0-B1) .LT.0.0) THEN B0=B1 K2=I END IF 3 CONTINUE IF((K2-K) .NE. 0) THEN C C INTERCHANGE RWOS TO OBTAIN THE LARGEST PIVOT ELEMENT DO 5 J=K,M C=A(K2,J) A(K2,J)=A(K,J) 5 A(K,J)=C END IF DO 2 I=K1,N C C APPLY THE GAUSSIAN ELIMINATION ALGORITHM C DO 6 J=K1,M 6 A(I,J)=A(I,J)-A(I,K)*A(K,J)/A(K,K) 2 A(I,K)=0.0 C C APPLY BACK SUBSTITUTION C X(N)=A(N,M)/A(N,N) DO 7 I1=1,N1 I=N-I1 S=0.0 J1=I+1 DO 8 J=J1,N 8 S=S+A(I,J)*X(J) 7 X(I)=(A(I,M)-S)/A(I,I) RETURN END
[/size:1700fff931]
the problem is it states that
error 399 - Unrecognised statement, did you forget to add /FIXED_FORMAT?
I dont know what is the problem.. is it the book or my compiler.. I am using silverfrost Fn95
and also the book is kind a old it dates back to 90's.. do you think i should try it using fortran 77? sorry I miss some details, i am totally new using fortran
