1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
SUBROUTINE MULTIP (N,A,NROW)
DIMENSION A(N,N),NROW(N)
ZERO=1.0E-20
DO 1 I=1,N
1 NROW(I) = I
M = N-1
DO 2 I=1,M
IMAX = I
J = I+1
DO 3 IP=J,N
L1 = NROW(IMAX)
L2 = NROW(IP)
3 IF(ABS(A(L2,I)).GT.ABS(A(L1,I))) IMAX = IP
IF(ABS(A(NROW(IMAX),I)).LE.ZERO) THEN
WRITE(6,10) I,NROW(IMAX),A(NROW(IMAX),I)
10 FORMAT(1X,I3,1X,I3,1X,E15.8)
WRITE(6,100)
STOP
END IF
IF(NROW(I).NE.NROW(IMAX)) THEN
JJ = NROW(I)
NROW(I) = NROW(IMAX)
NROW(IMAX) = JJ
ENDIF
I1 = NROW(I)
DO 4 JJ=J,N
J1 = NROW(JJ)
A(J1,I) = A(J1,I)/A(I1,I)
DO 5 K=J,N
5 A(J1,K) = A(J1,K)-A(J1,I)*A(I1,K)
4 CONTINUE
2 CONTINUE
RETURN
100 FORMAT(1X,'La sous routine a echoue')
END |
Partager