dcfode(3f) - [M_odepack] Set ODE integrator coefficients.
subroutine dcfode (meth, elco, tesco)
integer :: meth
double precision :: elco(13,12)
double precision :: tesco(3,12)
DCFODE is called by the integrator routine to set coefficients needed there.
DCFODE is called once at the beginning of the problem, and is not called again unless and until METH is changed.
The coefficients for the current method, as given by the value of METH, are set for all orders and saved. The maximum order assumed here is 12 if METH = 1 and 5 if METH = 2. (A smaller value of the maximum order is also allowed.)
The ELCO array contains the basic method coefficients. The coefficients el(i), 1 .le. i .le. nq+1, for the method of order nq are stored in ELCO(i,nq). They are given by a genetrating polynomial, i.e., l(x) = el(1) + el(2)x + … + el(nq+1)xnq. For the implicit Adams methods, l(x) is given by dl/dx = (x+1)(x+2)…(x+nq-1)/factorial(nq-1), l(-1) = 0. For the BDF methods, l(x) is given by l(x) = (x+1)(x+2) … (x+nq)/K, where K = factorial(nq)*(1 + 1/2 + … + 1/nq).
The TESCO array contains test constants used for the local error test and the selection of step size and/or order. At order nq, TESCO(k,nq) is used for the selection of step size at order nq - 1 if k = 1, at order nq if k = 2, and at order nq + 1 if k = 3.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | meth | |||
real(kind=dp), | intent(inout) | :: | elco(13,12) | |||
real(kind=dp), | intent(out) | :: | tesco(3,12) |