1 SUBROUTINE dsolsy (WM, IWM, X, TEM)
46 DOUBLE PRECISION WM, X, TEM
47 dimension wm(*), iwm(*), x(*), tem(*)
48 INTEGER ILLIN, INIT, LYH, LEWT, LACOR, LSAVF, LWM, LIWM,
49 1 MXSTEP, MXHNIL, NHNIL, NTREP, NSLAST, NYH,
50 2 IALTH, IPUP, LMAX, MEO, NQNYH, NSLP
51 INTEGER ICF, IERPJ, IERSL, JCUR, JSTART, KFLAG, L, METH, MITER,
52 2 MAXORD, MAXCOR, MSBP, MXNCF, N, NQ, NST, NFE, NJE, NQU
53 DOUBLE PRECISION CONIT, CRATE, EL, ELCO, HOLD, RMAX, TESCO,
54 2 CCMAX, EL0, H, HMIN, HMXI, HU, RC, TN, UROUND
55 COMMON /dls001/ conit, crate, el(13), elco(13,12),
56 1 hold, rmax, tesco(3,12),
57 2 ccmax, el0, h, hmin, hmxi, hu, rc, tn, uround,
58 2 illin, init, lyh, lewt, lacor, lsavf, lwm, liwm,
59 3 mxstep, mxhnil, nhnil, ntrep, nslast, nyh,
60 3 ialth, ipup, lmax, meo, nqnyh, nslp,
61 4 icf, ierpj, iersl, jcur, jstart, kflag, l, meth, miter,
62 5 maxord, maxcor, msbp, mxncf, n, nq, nst, nfe, nje, nqu
63 INTEGER I, MEBAND, ML, MU
65 DOUBLE PRECISION DI, HL0, PHL0, R
69 GO TO (100, 100, 300, 400, 400), miter
70 100
CALL dgetrs (
'N', n, 1, wm(3), n, iwm(21), x, n, inlpck)
76 IF (hl0 .EQ. phl0)
GO TO 330
79 di = 1.0d0 - r*(1.0d0 - 1.0d0/wm(i+2))
80 IF (abs(di) .EQ. 0.0d0)
GO TO 390
81 320 wm(i+2) = 1.0d0/di
83 340 x(i) = wm(i+2)*x(i)
90 meband = 2*ml + mu + 1
91 CALL dgbtrs (
'N', n, ml, mu, 1, wm(3), meband, iwm(21), x, n,
subroutine dsolsy(WM, IWM, X, TEM)