chmsmq
C CHMSMQ SOURCE CHAT 05/01/12 22:00:15 5004 C======================================================================= C ISSU DE TRIOEF ( TRSIMQ) C C OBJET: TROUVE LA SOLUTION D'UN ENSEMBLE DE N<=NXDIM EQUATIONS LINEAIRES C NON HOMOGENES Y=Z.X: TROUVE X C C ARGUMENTS: Z(NXDIM,NXDIM): MATRICE DES COEFFICIENTS C Y(NYDIM): TABLEAU DES RESIDUS C N :DIMENSION ACTUELLE DU TABLEAU Z C NXDIM: DIMENSION MAXIMUM DU TABLEAU Z C C EST APPELLEE PAR CHMSLV C IER=8 SI LA MATRICE EST SINGULIERE C C FORTRAN 77 C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) DIMENSION Z(NXDIM,NXDIM),Y(NXDIM) C PROVISION FOR N=1 IF(N.EQ.1) THEN Y(1)=Y(1)/Z(1,1) RETURN ENDIF C ELEMENT OF ELIMINATION L1=N-1 DO 10 M=1,L1 ZMAX=0.D0 C FIND MAX OF COLUMN DO 20 I=M,N IF(ABS(Z(I,M)).LE.ZMAX) GO TO 20 IMAX=I ZMAX=ABS(Z(I,M)) 20 CONTINUE C ERROR RETURN IER=8 RETURN ENDIF C ROW INTERCHANGE V=Y(M) DO 40 J=M,N V=Z(M,J) 40 CONTINUE ENDIF C DIAGONALIZE M1=M+1 DO 70 I=M1,N V=Z(I,M)/Z(M,M) Y(I)=Y(I)-V*Y(M) DO 65 J=M,N Z(I,J)=Z(I,J)-V*Z(M,J) 65 CONTINUE 70 CONTINUE 10 CONTINUE C BACK SUBSTITUTE Y(N)=Y(N)/Z(N,N) L1=N-1 DO 100 K=1,L1 I=N-K I1=I+1 DO 90 J=I1,N Y(I)=Y(I)-Y(J)*Z(I,J) 90 CONTINUE Y(I)=Y(I)/Z(I,I) 100 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales