1 SUBROUTINE ddajac (NEQ, X, Y, YPRIME, DELTA, CJ, H,
2 + ier, wt,
e, wm, iwm, res, ires, uround, jac, rpar,
59 INTEGER NEQ, IER, IWM(*), IRES, IPAR(*), NTEMP
61 * x, y(*), yprime(*), delta(*), cj, h, wt(*),
e(*), wm(*),
65 EXTERNAL dgbtrf, dgetrf
67 INTEGER I, I1, I2, II, IPSAVE, ISAVE, J, K, L, LENPD, LIPVT,
68 * lml, lmtype, lmu, mba, mband, meb1, meband, msave, mtype, n,
70 DOUBLE PRECISION DEL, DELINV, SQUR, YPSAVE, YSAVE
82 go
to(100,200,300,400,500),mtype
89 CALL jac(x,y,yprime,wm(npd),cj,rpar,ipar)
99 del=sign(del,h*yprime(i))
104 yprime(i)=yprime(i)+cj*del
105 CALL res(x,y,yprime,
e,ires,rpar,ipar)
106 IF (ires .LT. 0)
RETURN
109 220 wm(nrow+l)=(
e(l)-delta(l))*delinv
117 230 CALL dgetrf( neq, neq, wm(npd), neq, iwm(lipvt), ier)
126 400 lenpd=(2*iwm(lml)+iwm(lmu)+1)*neq
128 410 wm(npdm1+i)=0.0d0
129 CALL jac(x,y,yprime,wm(npd),cj,rpar,ipar)
130 meband=2*iwm(lml)+iwm(lmu)+1
135 500 mband=iwm(lml)+iwm(lmu)+1
137 meband=mband+iwm(lml)
148 wm(ipsave+k)=yprime(n)
150 del=sign(del,h*yprime(n))
153 510 yprime(n)=yprime(n)+cj*del
154 CALL res(x,y,yprime,
e,ires,rpar,ipar)
155 IF (ires .LT. 0)
RETURN
159 yprime(n)=wm(ipsave+k)
161 del=sign(del,h*yprime(n))
164 i1=
max(1,(n-iwm(lmu)))
165 i2=
min(neq,(n+iwm(lml)))
166 ii=n*meb1-iwm(lml)+npdm1
168 520 wm(ii+i)=(
e(i)-delta(i))*delinv
174 550 CALL dgbtrf(neq, neq, iwm(lml), iwm(lmu), wm(npd), meband,
subroutine ddajac(NEQ, X, Y, YPRIME, DELTA, CJ, H, IER, WT, E, WM, IWM, RES, IRES, UROUND, JAC, RPAR, IPAR, NTEMP)
may be zero for pure relative error test tem the relative tolerance must be greater than or equal to
charNDArray max(char d, const charNDArray &m)
OCTAVE_EXPORT octave_value_list return the value of the option it must match the dimension of the state and the relative tolerance must also be a vector of the same length tem it must match the dimension of the state and the absolute tolerance must also be a vector of the same length The local error test applied at each integration step is xample roup abs(local error in x(i))<
issues an error eealso double
octave_value sqrt(void) const
charNDArray min(char d, const charNDArray &m)