5 SUBROUTINE dnsk(X,Y,YPRIME,NEQ,RES,PSOL,WT,RPAR,IPAR,
6 * SAVR,DELTA,E,WM,IWM,CJ,SQRTN,RSQRTN,EPLIN,EPCON,
7 * S,CONFAC,TOLNEW,MULDEL,MAXIT,IRES,IERSL,IERNEW)
93 IMPLICIT DOUBLE PRECISION(a-h,o-z)
94 dimension y(*),yprime(*),wt(*),delta(*),e(*),savr(*)
95 dimension wm(*),iwm(*), rpar(*),ipar(*)
98 parameter(lnni=19, lnre=12)
109 iwm(lnni) = iwm(lnni) + 1
113 IF (muldel .EQ. 1)
THEN
115320 delta(i) = delta(i) * confac
121340 savr(i) = delta(i)
125 CALL dslvk (neq, y, x, yprime, savr, delta, wt, wm, iwm,
126 * res, ires, psol, iersl, cj, eplin, sqrtn, rsqrtn, rhok,
128 IF (ires .NE. 0 .OR. iersl .NE. 0)
GO TO 380
133 y(i) = y(i) - delta(i)
134 e(i) = e(i) - delta(i)
135360 yprime(i) = yprime(i) - cj*delta(i)
139 delnrm =
ddwnrm(neq,delta,wt,rpar,ipar)
140 IF (delnrm .LE. tolnew)
GO TO 370
144 rate = (delnrm/oldnrm)**(1.0d0/m)
145 IF (rate .GT. 0.9d0)
GO TO 380
146 s = rate/(1.0d0 - rate)
148 IF (s*delnrm .LE. epcon)
GO TO 370
154 IF (m .GE. maxit)
GO TO 380
158 iwm(lnre) = iwm(lnre) + 1
159 CALL res(x,y,yprime,cj,delta,ires,rpar,ipar)
160 IF (ires .LT. 0)
GO TO 380
170 IF (ires .LE. -2 .OR. iersl .LT. 0)
THEN
subroutine dnsk(x, y, yprime, neq, res, psol, wt, rpar, ipar, savr, delta, e, wm, iwm, cj, sqrtn, rsqrtn, eplin, epcon, s, confac, tolnew, muldel, maxit, ires, iersl, iernew)
subroutine dslvk(neq, y, tn, yprime, savr, x, ewt, wm, iwm, res, ires, psol, iersl, cj, eplin, sqrtn, rsqrtn, rhok, rpar, ipar)