CTITLEMLSCO -- SOLVES LINEAR SYSTEM OF EQUATIONS BY CRAMER'S RULE 00000020 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR UNKNOWN 00000030 CA DESIGNER UNKNOWN - PASS ROUTINE CONVERTED BY 00000040 CA GALEN WHIPPLE 08-01-77 00000050 CA LANGUAGE FORTRAN 00000060 CA SYSTEM IBM AND CRAY 00000060 CA WRITTEN MO-DA-YR 00000070 C REVISED MO-DA-YR BY PROGRAMMER FOR REASON. 00000080 C REVISED 00000090 CA 00000100 CA 00000110 CA CALL MLSCO (A, B, C, S, N) 00000120 CA INPUT A = N BY N COEFFICIENT MATRIX R4 00000130 CA OUTPUT B = SOLUTION VECTOR R4 00000140 CA INPUT C = N BY 1 CONSTANT MATRIX R4 00000150 CA INPUT S = WORK ARRAY OF LENGTH N*N DOUBLE WORDS. R8 00000160 CA INPUT N = NUMBER OF UNKNOWNS IN SYSTEM (ORDER OF I4 00000170 CA MATRIX A) 00000180 CA 00000190 CA 00000195 CA THIS SUBROUTINE SOLVES A SET OF LINEAR EQUATIONS BY CRAMER'S 00000200 CA RULE. IF THE MATRIX A IS SINGULAR RETURN IS MADE WITH NO 00000210 CA INDICATION. 00000220 CAEND 00000230 SUBROUTINE MLSCO(A,B,C,S,N) 00000250 DOUBLE PRECISION S 00000260 DIMENSION A(N,N),B(N),C(N),S(N,N) 00000270 DO 10 K=1,N 00000280 DO 10 J=1,N 00000290 10 S(K,J) = DBLE(A(K,J)) 00000300 D = 0.0 00000310 CALL MDETRM(S,N,D) 00000320 IF( D .EQ. 0.) GO TO 60 00000330 15 DO 50 I=1,N 00000340 DO 20 K=1,N 00000350 DO 20 J=1,N 00000360 20 S(K,J) = DBLE(A(K,J)) 00000370 DO 30 K=1,N 00000380 30 S(K,I) = DBLE(C(K)) 00000390 CALL MDETRM(S,N,B(I)) 00000400 50 B(I) = B(I)/D 00000410 60 RETURN 00000420 END 00000430