5 SUBROUTINE dnsd(X,Y,YPRIME,NEQ,RES,PDUM,WT,RPAR,IPAR,
6 * DUMSVR,DELTA,E,WM,IWM,CJ,DUMS,DUMR,DUME,EPCON,
7 * S,CONFAC,TOLNEW,MULDEL,MAXIT,IRES,IDUM,IERNEW)
86 IMPLICIT DOUBLE PRECISION(a-h,o-z)
87 dimension y(*),yprime(*),wt(*),delta(*),e(*)
88 dimension wm(*),iwm(*), rpar(*),ipar(*)
91 parameter(lnre=12, lnni=19)
102 iwm(lnni) = iwm(lnni) + 1
106 IF (muldel .EQ. 1)
THEN
108 320 delta(i) = delta(i) * confac
114 CALL dslvd(neq,delta,wm,iwm)
121 340 yprime(i)=yprime(i)-cj*delta(i)
125 delnrm=
ddwnrm(neq,delta,wt,rpar,ipar)
126 IF (delnrm .LE. tolnew)
GO TO 370
130 rate = (delnrm/oldnrm)**(1.0d0/m)
131 IF (rate .GT. 0.9d0)
GO TO 380
132 s = rate/(1.0d0 - rate)
134 IF (s*delnrm .LE. epcon)
GO TO 370
142 IF(m.GE.maxit)
GO TO 380
147 iwm(lnre)=iwm(lnre)+1
148 CALL res(x,y,yprime,cj,delta,ires,rpar,ipar)
149 IF (ires .LT. 0)
GO TO 380
159 IF (ires .LE. -2 )
THEN
double precision function ddwnrm(NEQ, V, RWT, RPAR, IPAR)
subroutine dnsd(X, Y, YPRIME, NEQ, RES, PDUM, WT, RPAR, IPAR, DUMSVR, DELTA, E, WM, IWM, CJ, DUMS, DUMR, DUME, EPCON, S, CONFAC, TOLNEW, MULDEL, MAXIT, IRES, IDUM, IERNEW)
subroutine dslvd(NEQ, DELTA, WM, IWM)