38 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE ::
ode_atol 53 SUBROUTINE dlsoda (F, NEQ, Y, T, TOUT, ITOL, RTOL, ATOL, &
54 itask,istate, iopt, rwork, lrw, iwork, liw, jac, jt)
56 INTEGER :: ITOL, ITASK, ISTATE, IOPT, LRW, LIW, JT
57 INTEGER,
dimension(2) :: NEQ
58 INTEGER,
dimension(LIW) :: IWORK
59 DOUBLE PRECISION :: T, TOUT
60 DOUBLE PRECISION :: JAC
61 DOUBLE PRECISION,
dimension(1) :: RTOL
62 DOUBLE PRECISION,
dimension(LRW) :: RWORK
63 DOUBLE PRECISION,
dimension(NEQ(1)) :: Y, ATOL
102 DOUBLE PRECISION,
intent(IN) :: ODE_DT
104 INTEGER,
intent(OUT) :: iErr
114 DOUBLE PRECISION,
dimension(ODE_DIMN_all) :: ODE_VARS
119 INTEGER,
dimension(NEQ_DIMN) :: lNEQ
121 DOUBLE PRECISION :: lT
123 DOUBLE PRECISION :: lTOUT
127 DOUBLE PRECISION :: lRTOL(1)
137 DOUBLE PRECISION :: RWORK(
ode_lrw)
145 DOUBLE PRECISION :: lJAC
159 ijk_lp:
DO ijk = ijkstart3, ijkend3
161 IF(fluid_at(ijk))
THEN 212 ltout, litol, lrtol, latol, litask, listate, liopt, &
213 rwork, llrw, iwork, lliw, ljac, ljt)
223 ELSEIF(ierr == -1)
THEN 234 ELSEIF(ierr == -2)
THEN 326 INTEGER,
intent(in) :: IJK
330 DOUBLE PRECISION,
parameter :: rLimit = 1.0d-8
367 INTEGER,
intent(in) :: IJK
368 INTEGER,
intent(out) :: lNEQ(
neq_dimn)
372 LOGICAL :: USE_SOLIDS_ODEs
375 use_solids_odes = .false.
383 IF(
ep_s(ijk,m) > 1.0d-6)
THEN 384 use_solids_odes = .true.
390 IF(use_solids_odes)
THEN 467 CALL bound_x (x_g(1,nn), ijkmax2)
483 IF(.NOT.fluid_at(ijk)) cycle
485 mw_mix_g(ijk) = sum(x_g(ijk,1:
nmax(0))/mw_g(1:
nmax(0)))
486 mw_mix_g(ijk) =
one/mw_mix_g(ijk)
488 p_g(ijk) = (ro_g(ijk)*
gas_const*t_g(ijk))/mw_mix_g(ijk)
subroutine, public write_ode_log(lErr, lnD, lNEQ, loD, lVARS)
double precision, dimension(:), allocatable ep_g
integer stiff_chem_max_steps
double precision, parameter one
subroutine dlsoda(F, NEQ, Y, T, TOUT, ITOL, RTOL, ATOL, ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JAC, JT)
logical, external compare
logical, dimension(0:dim_m) species_eq
double precision, dimension(:), allocatable t_g
double precision gas_const
subroutine, public mapodetomfix(lnD, lNEQ, loD, lVars)
double precision, dimension(:), allocatable p_g
subroutine usr_rates(IJK, RATES)
subroutine, public check_ode_data(lnD, lNEQ, loD, VARS, lUNLIMITED, lState, lErr)
double precision, dimension(dim_n_g) mw_g
subroutine, public write_stiff_chem_stats
subroutine, public update_stiff_chem_stats(lNEQ, lNEQ_DIMN, lNST, lODE_DIMN, lAtps, lIncpt)
double precision, dimension(1) ode_rtol
subroutine finalize_stiff_solver
subroutine, public update_ode_old(lODE_DIMN, lODE_VARS)
external stiff_chem_rrates
subroutine, public mapmfixtoode(lnD, lNEQ, loD, lVars)
integer, public ode_debug_level
double precision, external calc_h0
double precision, dimension(:,:,:), allocatable x_s
double precision, dimension(:,:), allocatable t_s
double precision, dimension(:,:), allocatable x_g
subroutine calc_ode_coeff(lNEQ, IJK)
double precision function f(POS, ALPHAC, D_Target, L, N)
double precision, dimension(:), allocatable ode_atol
subroutine, public init_stiff_chem_stats
double precision, dimension(:), allocatable mw_mix_g
integer, dimension(0:dim_m) nmax
subroutine stiff_chem_solver(ODE_DT, iErr)
double precision function ep_s(IJK, xxM)
subroutine, public reset_ode(lDIMN, lVARS, lAtps)
subroutine bound_x(ARRAY, IJKMAX2)
double precision, dimension(:,:), allocatable rop_s
logical, dimension(:), allocatable notowner
double precision, dimension(:), allocatable ro_g
double precision, dimension(:), allocatable rop_g
logical function calc_reactions(IJK)
double precision, parameter zero