5 SUBROUTINE dnsik(X,Y,YPRIME,NEQ,ICOPT,ID,RES,PSOL,WT,RPAR,IPAR,
6 * SAVR,DELTA,R,YIC,YPIC,PWK,WM,IWM,CJ,SQRTN,RSQRTN,EPLIN,EPCON,
7 * RATEMX,MAXIT,STPTOL,ICNFLG,ICNSTR,IERNEW)
85 IMPLICIT DOUBLE PRECISION(a-h,o-z)
86 dimension y(*),yprime(*),wt(*),id(*),delta(*),r(*),savr(*)
87 dimension yic(*),ypic(*),pwk(*),wm(*),iwm(*), rpar(*),ipar(*)
91 parameter(lnni=19, lnps=21, llocwp=29, llciwp=30)
92 parameter(llsoff=35, lstol=14)
106 CALL dcopy (neq, delta, 1, savr, 1)
110 CALL dfnrmk (neq, y, x, yprime, savr, r, cj, wt, sqrtn, rsqrtn,
111 * res, ires, psol, 1, ier, fnrm, eplin, wm(lwp), iwm(liwp),
113 iwm(lnps) = iwm(lnps) + 1
121 IF (fnrm .LE. epcon)
RETURN
126 iwm(lnni) = iwm(lnni) + 1
130 CALL dslvk (neq, y, x, yprime, savr, delta, wt, wm, iwm,
131 * res, ires, psol, iersl, cj, eplin, sqrtn, rsqrtn, rhok,
133 IF (ires .NE. 0 .OR. iersl .NE. 0)
GO TO 390
137 delnrm =
ddwnrm(neq,delta,wt,rpar,ipar)
138 IF (delnrm .EQ. 0.0d0)
RETURN
144 CALL dlinsk (neq, y, x, yprime, savr, cj, delta, delnrm, wt,
145 * sqrtn, rsqrtn, lsoff, stptol, iret, res, ires, psol, wm, iwm,
146 * rhok, fnrm, icopt, id, wm(lwp), iwm(liwp), r, eplin, yic, ypic,
147 * pwk, icnflg, icnstr, rlx, rpar, ipar)
152 IF (iret .NE. 0)
GO TO 390
156 IF (fnrm .LE. epcon)
RETURN
162 IF(m .GE. maxit)
GO TO 380
166 CALL dcopy (neq, savr, 1, delta, 1)
171 380
IF (rate .LE. ratemx)
THEN
178 390
IF (ires .LE. -2 .OR. iersl .LT. 0)
THEN
182 IF (ires .EQ. 0 .AND. iersl .EQ. 1 .AND. m .GE. 2
183 1 .AND. rate .LT. 1.0d0) iernew = 1
double precision function ddwnrm(NEQ, V, RWT, RPAR, IPAR)
subroutine dfnrmk(NEQ, Y, T, YPRIME, SAVR, R, CJ, WT, SQRTN, RSQRTN, RES, IRES, PSOL, IRIN, IER, FNORM, EPLIN, WP, IWP, PWK, RPAR, IPAR)
subroutine dlinsk(NEQ, Y, T, YPRIME, SAVR, CJ, P, PNRM, WT, SQRTN, RSQRTN, LSOFF, STPTOL, IRET, RES, IRES, PSOL, WM, IWM, RHOK, FNRM, ICOPT, ID, WP, IWP, R, EPLIN, YNEW, YPNEW, PWK, ICNFLG, ICNSTR, RLX, RPAR, IPAR)
subroutine dnsik(X, Y, YPRIME, NEQ, ICOPT, ID, RES, PSOL, WT, RPAR, IPAR, SAVR, DELTA, R, YIC, YPIC, PWK, WM, IWM, CJ, SQRTN, RSQRTN, EPLIN, EPCON, RATEMX, MAXIT, STPTOL, ICNFLG, ICNSTR, IERNEW)
subroutine dslvk(NEQ, Y, TN, YPRIME, SAVR, X, EWT, WM, IWM, RES, IRES, PSOL, IERSL, CJ, EPLIN, SQRTN, RSQRTN, RHOK, RPAR, IPAR)