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
115 320 delta(i) = delta(i) * confac
121 340 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)
135 360 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
double precision function ddwnrm(NEQ, V, RWT, RPAR, IPAR)
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)