*DECK PJAC SUBROUTINE PJAC (NEQ, Y, YH, NYH, EWT, FTEM, SAVF, WM, IWM, F, + JAC, RPAR, IPAR) C***BEGIN PROLOGUE PJAC C***SUBSIDIARY C***PURPOSE Subsidiary to DEBDF C***LIBRARY SLATEC C***TYPE SINGLE PRECISION (PJAC-S, DPJAC-D) C***AUTHOR Watts, H. A., (SNLA) C***DESCRIPTION C C PJAC sets up the iteration matrix (involving the Jacobian) for the C integration package DEBDF. C C***SEE ALSO DEBDF C***ROUTINES CALLED SGBFA, SGEFA, VNWRMS C***COMMON BLOCKS DEBDF1 C***REVISION HISTORY (YYMMDD) C 800901 DATE WRITTEN C 890531 Changed all specific intrinsics to generic. (WRB) C 891214 Prologue converted to Version 4.0 format. (BAB) C 900328 Added TYPE section. (WRB) C 910722 Updated AUTHOR section. (ALS) C 920422 Changed DIMENSION statement. (WRB) C***END PROLOGUE PJAC C CLLL. OPTIMIZE INTEGER NEQ, NYH, IWM, I, I1, I2, IER, II, IOWND, IOWNS, J, J1, 1 JJ, JSTART, KFLAG, L, LENP, MAXORD, MBA, MBAND, MEB1, MEBAND, 2 METH, MITER, ML, ML3, MU, N, NFE, NJE, NQ, NQU, NST EXTERNAL F, JAC REAL Y, YH, EWT, FTEM, SAVF, WM, 1 ROWND, ROWNS, EL0, H, HMIN, HMXI, HU, TN, UROUND, 2 CON, DI, FAC, HL0, R, R0, SRUR, YI, YJ, YJJ, VNWRMS DIMENSION Y(*), YH(NYH,*), EWT(*), FTEM(*), SAVF(*), 1 WM(*), IWM(*), RPAR(*), IPAR(*) COMMON /DEBDF1/ ROWND, ROWNS(210), 1 EL0, H, HMIN, HMXI, HU, TN, UROUND, IOWND(14), IOWNS(6), 2 IER, JSTART, KFLAG, L, METH, MITER, MAXORD, N, NQ, NST, NFE, 3 NJE, NQU C----------------------------------------------------------------------- C PJAC IS CALLED BY STOD TO COMPUTE AND PROCESS THE MATRIX C P = I - H*EL(1)*J , WHERE J IS AN APPROXIMATION TO THE JACOBIAN. C HERE J IS COMPUTED BY THE USER-SUPPLIED ROUTINE JAC IF C MITER = 1 OR 4, OR BY FINITE DIFFERENCING IF MITER = 2, 3, OR 5. C IF MITER = 3, A DIAGONAL APPROXIMATION TO J IS USED. C J IS STORED IN WM AND REPLACED BY P. IF MITER .NE. 3, P IS THEN C SUBJECTED TO LU DECOMPOSITION IN PREPARATION FOR LATER SOLUTION C OF LINEAR SYSTEMS WITH P AS COEFFICIENT MATRIX. THIS IS DONE C BY SGEFA IF MITER = 1 OR 2, AND BY SGBFA IF MITER = 4 OR 5. C C IN ADDITION TO VARIABLES DESCRIBED PREVIOUSLY, COMMUNICATION C WITH PJAC USES THE FOLLOWING.. C Y = ARRAY CONTAINING PREDICTED VALUES ON ENTRY. C FTEM = WORK ARRAY OF LENGTH N (ACOR IN STOD ). C SAVF = ARRAY CONTAINING F EVALUATED AT PREDICTED Y. C WM = REAL WORK SPACE FOR MATRICES. ON OUTPUT IT CONTAINS THE C INVERSE DIAGONAL MATRIX IF MITER = 3 AND THE LU DECOMPOSITION C OF P IF MITER IS 1, 2 , 4, OR 5. C STORAGE OF MATRIX ELEMENTS STARTS AT WM(3). C WM ALSO CONTAINS THE FOLLOWING MATRIX-RELATED DATA.. C WM(1) = SQRT(UROUND), USED IN NUMERICAL JACOBIAN INCREMENTS. C WM(2) = H*EL0, SAVED FOR LATER USE IF MITER = 3. C IWM = INTEGER WORK SPACE CONTAINING PIVOT INFORMATION, STARTING AT C IWM(21), IF MITER IS 1, 2, 4, OR 5. IWM ALSO CONTAINS THE C BAND PARAMETERS ML = IWM(1) AND MU = IWM(2) IF MITER IS 4 OR 5. C EL0 = EL(1) (INPUT). C IER = OUTPUT ERROR FLAG, = 0 IF NO TROUBLE, .NE. 0 IF C P MATRIX FOUND TO BE SINGULAR. C THIS ROUTINE ALSO USES THE COMMON VARIABLES EL0, H, TN, UROUND, C MITER, N, NFE, AND NJE. C-----------------------------------------------------------------------