CTITLEMDETRM -- DETERMINANT EVALUATION 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 MDETRM (A, N, D) 00000120 CA INPUT A = MATRIX R8 00000130 CA INPUT N = MATRIX ORDER I4 00000140 CA OUTPUT D = DETERMINANT OF THE MATRIX R4 00000150 CA 00000160 CA 00000170 CA THIS SUBROUTINE COMPUTES THE DETERMINANT OF THE INPUT MATRIX 00000200 CA BY TRIANGULATING THE MATRIX AND TAKING THE PRODUCT OF THE 00000210 CA DIAGONAL ELEMENTS. 00000220 CAEND 00000230 SUBROUTINE MDETRM(A,N,D) 00000240 DOUBLE PRECISION A,DPRIM,S 00000250 DIMENSION A(N,N) 00000260 L = N-1 00000270 DO 10 I=1,L 00000280 DO 10 J=I,L 00000290 IF(A(I,I) .EQ. 0.) GO TO 15 00000300 S = -A(J+1,I)/A(I,I) 00000310 IF (S .EQ. 0.) GO TO 10 00000320 DO 5 K=1,N 00000330 5 A(J+1,K) = S*A(I,K)+A(J+1,K) 00000340 10 CONTINUE 00000350 15 DPRIM = 1. 00000360 DO 20 K=1,N 00000370 20 DPRIM = DPRIM*A(K,K) 00000380 D = SNGL(DPRIM) 00000390 RETURN 00000400 END 00000410