CTITLEMAINVT -- MATRIX INVERSION 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR RALPH MCMILLAN 00000020 CA DESIGNER JIM BROWN 00000030 CA LANGUAGE S/370 FORTRAN H 00000040 CA WRITTEN 01-10-77 00000050 C REVISED 00000060 C 00000070 CA 00000080 CA 00000090 CA CALL MAINVT (A, B, C, N, E, DEN) 00000100 CA INPUT A = LOWER DIAGONAL OF TRI-DIAGONAL MATRIX R4 00000110 CA INPUT B = DIAGONAL ELEMENTS OF TRI-DIAGONAL MATRIX R4 00000120 CA INPUT C = UPPER DIAGONAL OF TRI-DIAGONAL MATRIX R4 00000130 CA INPUT N = NUMBER OF ELEMENTS IN A, B, C I4 00000140 CA OUTPUT E = RATIO OF 2 AUX COEFFICIENTS FOR MATRIX R4 00000150 CA SOLUTION 00000155 CA OUTPUT DEN = AUX ARRAY USED TO SOLVE TRI-DIAGONAL R4 00000160 CA SYSTEM 00000165 CA 00000170 CA 00000180 CA THIS ROUTINE PERFORMS A MATRIX INVERSION. 00000190 CAEND 00000200 C EJECT 00000280 C 00000290 C LOCAL VARIABLES AND CONSTANTS (INTERNAL TO SUBROUTINE). 00000300 C 00000310 C NM1 = N - 1 I4 00000320 C 00000330 C EJECT 00000340 SUBROUTINE MAINVT (A, B, C, N, E, DEN) 00000350 C 00000360 IMPLICIT INTEGER (A-Z) 00000370 C 00000380 C 00000390 C REAL ARRAYS IN PARAMETER LIST. 00000400 REAL A (1) 00000410 REAL B (1) 00000420 REAL C (1) 00000430 REAL DEN (1) 00000440 REAL E (1) 00000450 C 00000460 C 00000470 NM1 = N - 1 00000480 C 00000490 E(1) = 1. 00000500 C 00000510 DO 10 00000520 * I = 2, NM1 00000530 DEN(I) = B(I) + A(I) * E(I-1) 00000540 E(I) = -C(I) / DEN(I) 00000550 C 00000560 10 CONTINUE 00000570 C 00000580 RETURN 00000590 END 00000600