1 : C MINV23 SOURCE CHAT 05/01/13 01:45:24 5004 2 : SUBROUTINE MINV23(A,B,NMAX,N,KERRE) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : DIMENSION A(NMAX,*),B(*) 6 : KERRE=0 7 : GO TO (10,20,30),N 8 : 10 DUM1=A(1,1) 9 : IF(DUM1.EQ.0.) GO TO 999 10 : B(1)=B(1)/DUM1 11 : RETURN 12 : 20 DUM1=A(1,1)*A(2,2)-A(1,2)*A(1,2) 13 : IF(DUM1.EQ.0.) GO TO 999 14 : DUM2=(B(1)*A(2,2)-B(2)*A(1,2))/DUM1 15 : B(2)=(B(2)*A(1,1)-B(1)*A(1,2))/DUM1 16 : B(1)=DUM2 17 : RETURN 18 : 30 DUM1=A(1,1) 19 : IF(DUM1.EQ.0.) GO TO 999 20 : DO 1 I=2,3 21 : DUM2=A(1,I)/DUM1 22 : B(I)=B(I)-B(1)*DUM2 23 : DO 2 J=I,3 24 : 2 A(I,J)=A(I,J)-A(1,J)*DUM2 25 : 1 A(1,I)=DUM2 26 : B(1)=B(1)/DUM1 27 : A(2,1)=A(1,2) 28 : DUM1=A(2,2) 29 : IF(DUM1.EQ.0.) GO TO 999 30 : DO 3 I=1,3,2 31 : DUM2=A(2,I)/DUM1 32 : B(I)=B(I)-B(2)*DUM2 33 : 3 A(I,3)=A(I,3)-DUM2*A(2,3) 34 : B(2)=B(2)/DUM1 35 : A(2,3)=A(2,3)/DUM1 36 : DUM1=A(3,3) 37 : IF(DUM1.EQ.0.) GO TO 999 38 : DUM2=B(3)/DUM1 39 : DO 4 I=1,2 40 : 4 B(I)=B(I)-DUM2*A(I,3) 41 : B(3)=DUM2 42 : RETURN 43 : 999 KERRE=6 44 : RETURN 45 : END 46 :
© Cast3M 2003 - All rights reserved.
Disclaimer