test_chemistry

Module

Description

$Id$

MODULE_DOC: This modules adds chemical species and reactions. MODULE_DOC: The units used in the chem.in files are cm3,mole,sec,kcal and K This was found out by comparing the mechanism found in samples/0D/chemistry_H2_ignition_delay with Flow Reactor Studies and Kinetic Modeling of the ReactionH/O22 of A. MUELLER, T. J. KIM, R. A. YETTER, F. L. DRYER

** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this CPARAM logical, parameter :: lchemistry = .true.

MVAR CONTRIBUTION 1 MAUX CONTRIBUTION 1

PENCILS PROVIDED cv; cv1; cp; cp1; glncp(3); gXXk(3,nchemspec) PENCILS PROVIDED nu; gradnu(3); gYYk(3,nchemspec) PENCILS PROVIDED DYDt_reac(nchemspec); DYDt_diff(nchemspec) PENCILS PROVIDED lambda; glambda(3); lambda1 PENCILS PROVIDED Diff_penc_add(nchemspec); H0_RT(nchemspec); hhk_full(nchemspec) PENCILS PROVIDED ghhk(3,nchemspec); S0_R(nchemspec); cs2 PENCILS PROVIDED glnpp(3); del2pp; mukmu1(nchemspec) PENCILS PROVIDED ccondens; ppwater PENCILS PROVIDED Ywater


Quick access

Variables:

a_k4_min, a_spec, absorb_spec_psurf, absorbing_species, air_field, astrobiology_data, atomic_m_spec, bin_diff_coef, bubble_pressure_pk, bubble_temp_pk, build_stoich_matrix, calc_collision_integral, calc_diff_visc_coef, calc_diffusion_term, calc_extra_react, calc_heatcond_chemistry, calc_reaction_term, calc_therm_diffus_coef, chemistry_diag_reductions, chemistry_init_diag_accum, chemistry_read_diag_accum, chemkin_data, chemkin_data_simple, conc_sat_spec_cgs, cond_spec_nucl_rate, cond_spec_psat, cond_spec_sat_conc, condensing_species, cp_full, cp_r_spec, cp_spec_glo, cv_const, cv_full, cv_r_spec_full, dabs, dabs_cgs, damp_zone_for_nscbc, dcond, dcond_cgs, delta_chem, deltah_cgs, dhsol_cgs, diff_coef_const, diff_full, diff_full_add, enum_iconc_sat_spec, enum_inucl_pre_exp, enum_isurf_energy, enum_reac_rate_method, enum_reaction_name, find_remove_real_stoic, flame, flame_blob, flame_front, flame_front_2d, flame_front_new, flameind_spec1, flameind_spec2, flamemaster_ini, gam_surf_energy_cgs, gam_surf_energy_mul_fac, get_1step_test_reaction_rate, get_1step_test_sum_dydts, get_reaction_rate, get_sum_dydts, getmu_array, henry_b, henry_model, henry_ref, henry_ref_cgs, henry_tref, high_coeff_abs_max, i_absorb_spec, i_c3h8_glob, i_cond_spec, i_o2_glob, iaa1_offset, iaa2_offset, iadv, ichem_absorb_spec, ichem_c3h8, ichem_co, ichem_co2, ichem_cond_spec, ichem_o2, iconc_sat_spec, idiag_alpham, idiag_alphamax, idiag_alphamin, idiag_conc_satm, idiag_cpfull, idiag_cvfull, idiag_diffmax, idiag_diffmin, idiag_ffnucl, idiag_flameindmax, idiag_flameindmin, idiag_lambdamax, idiag_lambdamin, idiag_latent_heat, idiag_mixfracmax, idiag_mixfracmin, idiag_nuclrate, idiag_nuclrmin, idiag_rhoym, idiag_supersat, idiag_tym, ifuel_flow, imassc, imassh, imassn, imasso, imasss, imassti, index_o2n2, init_fuel_molar_ratio, init_fuel_o2_demand, init_phi, init_premixed_fuel, init_temp_fuel, init_temp_oxidizer, intro_time, inucl_pre_exp, ipr, ireac, ireac_co, ireac_co2, ireac_o2, ireaci, isurf_energy, kreactions_alpha, kreactions_m, kreactions_p, kreactions_profile, kreactions_profile_width, kreactions_z, l1step_test, labsorbing_on, lambda_const, lambda_full, latmchem, lback, lc3h8, lchem_detailed, lchemistry_diag, lcloud, lcompute_rhs_y_full, lcorr_vel, ldamp_zone_for_nscbc, ldiff_fick, ldiff_lewis, ldiff_simple, lew_exist, lewis_coef, lewis_coef1, lfix_pr, lfix_sc, lflame_front_2d, lflame_index_as_aux, lflamemaster, lflux_simple, lgradp_terms, lheatc_chemistry, lhotspot, lkreactions_alpha, lkreactions_profile, lmixture_fraction_as_aux, lnoevap, lnolatentheat, lnormalize_chemspec, lnormalize_chemspec_n2, lnucleation, lnucleii_generated, lone_spec, low_coeff_abs_max, lreac_as_aux, lsmag_diffusion, lsmag_heat_transport, lspecies_cond_simplified, ltriple_flame, lupw_chemspec, mc3h8, min_nucl_radius_cgs, mix_frac_ih, mixture_fraction_element, mmx, mo2, molar_mass_absorb, molar_mass_spec, mreactions, net_react_m, net_react_p, nreactions1, nreactions2, nucleation_rate_coeff_cgs, opposite_flames, opposite_ignitions, p_boil_cgs, p_init, p_net_react_m, p_net_react_p, premixed_equiv_ratio, prerun_1d, prerun_1d_opp, press, reaction_name, read_lewis, read_reactions, read_reactions_mod, read_thermodyn_simple, read_transport_data, rho_full, rhs_y_full, roux, sc_number, scale_homo, sherwood_film_mdot, sijm_, sijm_mod, sijp_, sijp_mod, species_constants, species_viscosity, t_boil_cgs, tinf, tran_data, triple_flame, troe_coeff_abs_max, true_density_cond_spec_cgs, tt_full, ttd, visc_const, vreactions_m, vreactions_p, write_matrices, xx_full, ythresh, z_cloud

Routines:

absorb_spec_lagr(), absorb_spec_lsol(), calc_diagnostics_chemistry(), calc_for_chem_mixture(), calc_pencils_chemistry(), chemistry_allocate_rhs_arrays(), chemistry_before_boundary(), chemistry_clean_up(), chemistry_diags_reductions(), chemistry_init_reduc_pointers(), chemspec_normalization(), chemspec_normalization_n2(), cond_spec_absorb_rate(), cond_spec_cond(), cond_spec_cond_lagr(), cond_spec_film_rate(), cond_spec_lmass(), cond_spec_nucl(), cond_spec_nucl_lagr(), cond_spec_transfer_cv(), condensing_species_rate(), dchemistry_dt(), find_species_index(), get_cs2_full(), get_cs2_slice(), get_gamma_full(), get_gamma_slice(), get_mu1_slice(), get_reac_rate(), get_rhs_y_full(), get_slices_chemistry(), init_chemistry(), initialize_chemistry(), jacobn(), make_flame_index(), make_mixture_fraction(), pencil_criteria_chemistry(), pencil_interdep_chemistry(), read_chemistry_init_pars(), read_chemistry_run_pars(), register_chemistry(), rprint_chemistry(), write_chemistry_init_pars(), write_chemistry_run_pars(), write_net_reaction()

Needed modules

Variables

  • chemistry/a_k4 (*,*) [real,private/allocatable]
  • chemistry/air_field [private]
  • chemistry/alpha_n (*) [real,private/allocatable]
  • chemistry/amplchem [real,private/optional/default=1.0]
  • chemistry/amplchemk (nchemspec) [real,private/optional/default=0.]
  • chemistry/amplchemk2 (nchemspec) [real,private/optional/default=0.]
  • chemistry/astrobiology_data [private]
  • chemistry/b_n (*) [real,private/allocatable]
  • chemistry/back (*) [logical,private/allocatable]
  • chemistry/beta [real,private/optional/default=1.09]
  • chemistry/bin_diff_coef (*,*,*,*,*) [real,private/allocatable]
  • chemistry/build_stoich_matrix [private]
  • chemistry/calc_collision_integral [private]
  • chemistry/calc_diff_visc_coef [private]
  • chemistry/calc_diffusion_term [private]
  • chemistry/calc_extra_react [private]
  • chemistry/calc_heatcond_chemistry [private]
  • chemistry/calc_reaction_term [private]
  • chemistry/calc_therm_diffus_coef [private]
  • chemistry/chem_diff [real,private/optional/default=0.0]
  • chemistry/chem_diff_prefactor (nchemspec) [real,private/optional/default=1.]
  • chemistry/chemistry_diag_reductions [private]
  • chemistry/chemistry_init_diag_accum [private]
  • chemistry/chemistry_read_diag_accum [private]
  • chemistry/chemkin_data [private]
  • chemistry/cp_full (mx,my,mz) [real,private]
  • chemistry/cp_spec_glo (mx,my,mz,nchemspec) [real,private]
  • chemistry/cv_const [real,private/optional/default=impossible]
  • chemistry/cv_full (mx,my,mz) [real,private]
  • chemistry/cv_r_spec_full (mx,my,mz,nchemspec) [real,private]
  • chemistry/damp_zone_for_nscbc [private]
  • chemistry/diff_coef_const [real,private/optional/default=impossible]
  • chemistry/diff_full (*,*,*,*) [real,private/allocatable]
  • chemistry/diff_full_add (*,*,*,*) [real,private/allocatable]
  • chemistry/e_an (*) [real,private/allocatable]
  • chemistry/file_name [character,private/optional/default='nothing']
  • chemistry/find_remove_real_stoic [private]
  • chemistry/flame [private]
  • chemistry/flame_blob [private]
  • chemistry/flame_front [private]
  • chemistry/flame_front_new [private]
  • chemistry/flame_pos [real,private/optional/default=0.0]
  • chemistry/flamemaster_ini [private]
  • chemistry/get_reaction_rate [private]
  • chemistry/getmu_array [private]
  • chemistry/global_phi [real,private/optional/default=impossible]
  • chemistry/high_coeff (*,*) [real,private/allocatable]
  • chemistry/iaa1 (7) [integer,private]
  • chemistry/iaa2 (7) [integer,private]
  • chemistry/idiag_cpfull [integer,private/optional/default=0]
  • chemistry/idiag_cpm (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_cvfull [integer,private/optional/default=0]
  • chemistry/idiag_diffm (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_dtchem [integer,private/optional/default=0]
  • chemistry/idiag_dym (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_dymax (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_e_intm [integer,private/optional/default=0]
  • chemistry/idiag_hm (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_lambdam [integer,private/optional/default=0]
  • chemistry/idiag_num [integer,private/optional/default=0]
  • chemistry/idiag_ym (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_ymax (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_ymin (nchemspec) [integer,private/optional/default=0]
  • chemistry/idiag_ymz (nchemspec) [integer,private/optional/default=0]
  • chemistry/index_h2o [integer,private/save/optional/default=0.0]
  • chemistry/index_n2 [integer,private/save/optional/default=0.0]
  • chemistry/index_o2 [integer,private/save/optional/default=0.0]
  • chemistry/index_o2n2 [integer,private/save/optional/default=0.0]
  • chemistry/init_from_file [logical,private]
  • chemistry/init_pressure [real,private/optional/default=1013000.0]
  • chemistry/init_rho [real,private/optional/default=1.0]
  • chemistry/init_rho2 [real,private/optional/default=1.0]
  • chemistry/init_tt1 [real,private/optional/default=298.0]
  • chemistry/init_tt2 [real,private/optional/default=2400.0]
  • chemistry/init_ux [real,private/optional/default=0.0]
  • chemistry/init_uy [real,private/optional/default=0.0]
  • chemistry/init_uz [real,private/optional/default=0.0]
  • chemistry/init_x1 [real,private/optional/default=-0.2]
  • chemistry/init_x2 [real,private/optional/default=0.2]
  • chemistry/init_y1 [real,private/optional/default=-0.2]
  • chemistry/init_y2 [real,private/optional/default=0.2]
  • chemistry/init_z1 [real,private/optional/default=-0.2]
  • chemistry/init_z2 [real,private/optional/default=0.2]
  • chemistry/init_zz1 [real,private/optional/default=0.01]
  • chemistry/init_zz2 [real,private/optional/default=0.2]
  • chemistry/initchem (ninit) [character,private/optional/default='nothing']
  • chemistry/initial_massfractions (nchemspec) [real,private]
  • chemistry/ipr [integer,private/optional/default=2]
  • chemistry/ireac [integer,private/optional/default=0]
  • chemistry/ireaci (nchemspec) [integer,private/optional/default=0]
  • chemistry/itemp1 [integer,private/optional/default=2]
  • chemistry/itemp2 [integer,private/optional/default=3]
  • chemistry/itemp3 [integer,private/optional/default=4]
  • chemistry/kreactions_alpha (*) [real,private/allocatable]
  • chemistry/kreactions_m (*) [real,private/allocatable]
  • chemistry/kreactions_p (*) [real,private/allocatable]
  • chemistry/kreactions_profile (*) [character,private/allocatable]
  • chemistry/kreactions_profile_width (*) [real,private/allocatable]
  • chemistry/kreactions_z (*,*) [real,private/allocatable]
  • chemistry/kx_chem [real,private/optional/default=1.0]
  • chemistry/ky_chem [real,private/optional/default=1.0]
  • chemistry/kz_chem [real,private/optional/default=1.0]
  • chemistry/l1step_test [logical,private/optional/default=.false.]
  • chemistry/ladvection [logical,private/optional/default=.true.]
  • chemistry/lamb_low [real,private]
  • chemistry/lamb_up [real,private]
  • chemistry/lambda_const [real,private/optional/default=impossible]
  • chemistry/lambda_full (mx,my,mz) [real,private]
  • chemistry/latmchem [logical,private/optional/default=.false.]
  • chemistry/lchem_cdtc [logical,private/optional/default=.false.]
  • chemistry/lcheminp [logical,private/optional/default=.false.]
  • chemistry/lchemistry_diag [logical,private/optional/default=.false.]
  • chemistry/lcloud [logical,private/optional/default=.false.]
  • chemistry/ldamp_zone_for_nscbc [logical,private/optional/default=.false.]
  • chemistry/ldiff_corr [logical,private/optional/default=.false.]
  • chemistry/ldiff_fick [logical,private/optional/default=.false.]
  • chemistry/ldiff_lewis [logical,private/optional/default=.false.]
  • chemistry/ldiff_simple [logical,private/optional/default=.false.]
  • chemistry/ldiffusion [logical,private/optional/default=.true.]
  • chemistry/lew_exist [logical,private/save/optional/default=.false.]
  • chemistry/lewis_coef (nchemspec) [real,private]
  • chemistry/lewis_coef1 (nchemspec) [real,private]
  • chemistry/lfilter [logical,private/optional/default=.false.]
  • chemistry/lfilter_strict [logical,private/optional/default=.false.]
  • chemistry/lfix_pr [logical,private/optional/default=.false.]
  • chemistry/lfix_sc [logical,private/optional/default=.false.]
  • chemistry/lflame_front [logical,private/optional/default=.false.]
  • chemistry/lflamemaster [logical,private/optional/default=.false.]
  • chemistry/lflux_simple [logical,private/optional/default=.false.]
  • chemistry/lheatc_chemistry [logical,private/optional/default=.true.]
  • chemistry/lhotspot [logical,private/optional/default=.false.]
  • chemistry/linit_density [logical,private/optional/default=.false.]
  • chemistry/linit_temperature [logical,private/optional/default=.false.]
  • chemistry/lkreactions_alpha [logical,private/optional/default=.false.]
  • chemistry/lkreactions_profile [logical,private/optional/default=.false.]
  • chemistry/ll1 [integer,private]
  • chemistry/ll2 [integer,private]
  • chemistry/lmobility [logical,private/optional/default=.false.]
  • chemistry/lnucleii_generated [public]
  • chemistry/lone_spec [logical,private/optional/default=.false.]
  • chemistry/low_coeff (*,*) [real,private/allocatable]
  • chemistry/lreac_as_aux [logical,private/optional/default=.false.]
  • chemistry/lreactions [logical,public/optional/default=.true.]
  • chemistry/lsmag_diffusion [logical,private/optional/default=.false.]
  • chemistry/lsmag_heat_transport [logical,private/optional/default=.false.]
  • chemistry/lspecies_cond_simplified [logical,private/optional/default=.true.]
  • chemistry/lt_const [logical,private/optional/default=.false.]
  • chemistry/lt_tanh [logical,private/optional/default=.false.]
  • chemistry/lthcond_simple [logical,private/optional/default=.false.]
  • chemistry/ltriple_flame [logical,private/optional/default=.false.]
  • chemistry/mm1 [integer,private]
  • chemistry/mm2 [integer,private]
  • chemistry/mobility (nchemspec) [real,private/optional/default=1.]
  • chemistry/mplus_case (*) [logical,private/allocatable]
  • chemistry/mreactions [integer,private]
  • chemistry/mu1_full (*,*,*) [real,private/pointer]
  • chemistry/net_react_m (*,*) [real,private/allocatable]
  • chemistry/net_react_p (*,*) [real,private/allocatable]
  • chemistry/nn1 [integer,private]
  • chemistry/nn2 [integer,private]
  • chemistry/nreactions [integer,private/optional/default=0]
  • chemistry/nreactions1 [integer,private/optional/default=0]
  • chemistry/nreactions2 [integer,private/optional/default=0]
  • chemistry/nu_spec (nchemspec) [real,private/optional/default=0.]
  • chemistry/opposite_flames [private]
  • chemistry/opposite_ignitions [private]
  • chemistry/photochem_case (*) [logical,private/allocatable]
  • chemistry/pr_turb [real,private/optional/default=0.7]
  • chemistry/prerun_1d [private]
  • chemistry/prerun_1d_opp [private]
  • chemistry/prerun_directory [character,private/optional/default='nothing']
  • chemistry/reac_rate_method [character,private/optional/default='chemkin']
  • chemistry/reaction_name (*) [character,private/allocatable]
  • chemistry/read_lewis [private]
  • chemistry/read_reactions [private]
  • chemistry/read_transport_data [private]
  • chemistry/reinitialize_chemistry [logical,private/optional/default=.false.]
  • chemistry/rgas [real,public]
  • chemistry/rgas_unit_sys [real,private/optional/default=1.0]
  • chemistry/rho_full (mx,my,mz) [real,private]
  • chemistry/rhs_y_full (mx,my,mz,nchemspec) [real,private/save]
  • chemistry/roux [private]
  • chemistry/sc_number [real,private/optional/default=0.7]
  • chemistry/sijm (*,*) [real,private/allocatable]
  • chemistry/sijp (*,*) [real,private/allocatable]
  • chemistry/species_constants [public]
  • chemistry/species_viscosity (mx,my,mz,nchemspec) [real,private]
  • chemistry/stoichio (*,*) [real,private/allocatable]
  • chemistry/str_thick [real,private/optional/default=0.02]
  • chemistry/tc [real,private/optional/default=440.0]
  • chemistry/tinf [real,private/optional/default=2000.0]
  • chemistry/tran_data (nchemspec,7) [real,private]
  • chemistry/tran_exist [logical,private/save/optional/default=.false.]
  • chemistry/triple_flame [private]
  • chemistry/troe_coeff (*,*) [real,private/allocatable]
  • chemistry/tt_full (mx,my,mz) [real,private]
  • chemistry/ttd [private]
  • chemistry/visc_const [real,private/optional/default=impossible]
  • chemistry/widthchem [real,private/optional/default=1.0]
  • chemistry/write_reactions [private]
  • chemistry/xx_full (mx,my,mz,nchemspec) [real,private]
  • chemistry/z_cloud [real,private/optional/default=0.0]

Subroutines and functions

subroutine  chemistry/register_chemistry()

Configure pre-initialised (i.e. before parameter read) variables which should be know to be able to evaluate

13-aug-07/steveb: coded

8-jan-08/axel: added modifications analogously to dustdensity 5-mar-08/nils: Read thermodynamical data from chem.inp

Use :

farraymanager

Call to:

fatal_error(), svn_id(), find_species_index(), stop_it(), init_chemistry(), warning(), innerbox(), cos2x_cos2y_cos2z(), coswave(), gaussian(), gaussianpos(), hatwave(), initial_condition_chemistry(), getdensity(), gettemperature(), inevitably_fatal_error(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), der_onesided_4_slice_other()

subroutine  chemistry/initialize_chemistry(f)

called by run.f90 after reading parameters, but before the time loop

13-aug-07/steveb: coded 19-feb-08/axel: reads in chemistry.dat file 21-nov-10/julien: added the reaction rates as optional auxiliary variables

in the f array for output.

Parameters:

f (mx,my,mz,mfarray) [real]

Use :

farraymanager, sharedvariables (get_shared_variable()), messages (warning())

Call to:

fatal_error(), find_species_index(), stop_it(), init_chemistry(), warning(), innerbox(), cos2x_cos2y_cos2z(), coswave(), gaussian(), gaussianpos(), hatwave(), initial_condition_chemistry(), getdensity(), gettemperature(), inevitably_fatal_error(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), der_onesided_4_slice_other()

subroutine  chemistry/init_chemistry(f)

initialise chemistry initial condition; called from start.f90

13-aug-07/steveb: coded

jul-10/julien: Added some new initial cases

Parameters:

f (mx,my,mz,mfarray) [real,inout]

Use :

initcond, initialcondition (initial_condition_chemistry())

Call to:

innerbox(), cos2x_cos2y_cos2z(), coswave(), gaussian(), gaussianpos(), hatwave(), stop_it(), initial_condition_chemistry(), find_species_index(), fatal_error(), getdensity(), gettemperature(), inevitably_fatal_error(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), der_onesided_4_slice_other()

subroutine  chemistry/pencil_criteria_chemistry()

All pencils that this chemistry module depends on are specified here.

13-aug-07/steveb: coded

Call to:

find_species_index(), fatal_error(), getdensity(), gettemperature(), inevitably_fatal_error(), stop_it(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), der_onesided_4_slice_other()

subroutine  chemistry/pencil_interdep_chemistry(lpencil_in)

Interdependency among pencils provided by this module are specified here

02-03-08/Natalia: coded

Parameters:

lpencil_in (npencils) [logical]

Call to:

find_species_index(), fatal_error(), getdensity(), gettemperature(), inevitably_fatal_error(), stop_it(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), der_onesided_4_slice_other()

subroutine  chemistry/calc_pencils_chemistry(f, p)

Calculate chemistry pencils. Most basic pencils should come first, as others may depend on them.

13-aug-07/steveb: coded 10-jan-11/julien: adapted for the case where chemistry is solved by LSODE

Parameters:
Use :

sub (grad())

Call to:

find_species_index(), fatal_error(), getdensity(), gettemperature(), inevitably_fatal_error(), stop_it(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), der_onesided_4_slice_other()

subroutine  chemistry/calc_for_chem_mixture(f)

Calculate quantities for a mixture

22-jun-10/julien: Added evaluation of diffusion coefficients using constant

Lewis numers Di = lambda/(rho*Cp*Lei)

10-jan-11/julien: Modified for a resolution with LSODE 26-jui-11/julien: Replaced fatal_error by inevitably_fatal_error to allow

proper exit when T_loc<T_low or T_loc>T_up

Parameters:

f (mx,my,mz,mfarray) [real]

Call to:

getdensity(), gettemperature(), inevitably_fatal_error(), stop_it(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), find_species_index(), fatal_error(), der_onesided_4_slice_other()

subroutine  chemistry/chemspec_normalization(f)

20-sep-10/Natalia: coded renormalization of the species

Parameters:

f (mx,my,mz,mfarray) [real]

Call to:

stop_it(), timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), find_species_index(), fatal_error(), inevitably_fatal_error(), der_onesided_4_slice_other()

subroutine  chemistry/dchemistry_dt(f, df, p)

calculate right hand side of ONE OR MORE extra coupled PDEs along the ‘current’ Pencil, i.e. f(l1:l2,m,n) where m,n are global variables looped over in equ.f90

Due to the multi-step Runge Kutta timestepping used one MUST always add to the present contents of the df array. NEVER reset it to zero.

several precalculated Pencils of information are passed if for efficiency.

13-aug-07/steveb: coded

8-jan-08/natalia: included advection/diffusion

20-feb-08/axel: included reactions 22-jun-10/julien: modified evaluation of enthalpy fluxes with

constant Lewis numbers

10-jan-11/julien: modified to solve chemistry with LSODE

Parameters:
Use :

diagnostics, sub (grad(), dot_mn()), special (special_calc_chemistry())

Call to:

timing(), special_calc_chemistry(), dot_mn(), get_reac_rate(), max_mn_name(), xysum_mn_name_z(), find_species_index(), stop_it(), fatal_error(), inevitably_fatal_error(), der_onesided_4_slice_other()

subroutine  chemistry/read_chemistry_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

find_species_index(), stop_it(), fatal_error(), inevitably_fatal_error(), max_mn_name(), timing(), dot_mn(), der_onesided_4_slice_other()

subroutine  chemistry/write_chemistry_init_pars(unit)
Parameters:

unit [integer,in]

Call to:

find_species_index(), stop_it(), fatal_error(), inevitably_fatal_error(), max_mn_name(), timing(), dot_mn(), der_onesided_4_slice_other()

subroutine  chemistry/read_chemistry_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

find_species_index(), stop_it(), fatal_error(), inevitably_fatal_error(), max_mn_name(), timing(), dot_mn(), der_onesided_4_slice_other()

subroutine  chemistry/write_chemistry_run_pars(unit)
Parameters:

unit [integer,in]

Call to:

find_species_index(), stop_it(), fatal_error(), inevitably_fatal_error(), max_mn_name(), timing(), dot_mn(), der_onesided_4_slice_other()

subroutine  chemistry/rprint_chemistry(lreset[, lwrite])

reads and registers print parameters relevant to chemistry

13-aug-07/steveb: coded

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics (parse_name()), farraymanager (farray_index_append()), general (itoa(), get_species_nr())

Call to:

find_species_index(), stop_it(), fatal_error(), inevitably_fatal_error(), max_mn_name(), timing(), dot_mn(), der_onesided_4_slice_other()

subroutine  chemistry/get_slices_chemistry(f, slices)

Write slices for animation of Chemistry variables.

13-aug-07/steveb: dummy 16-may-09/raphael: added more slices

Parameters:
Use :

slices_methods (assign_slices_scal())

Call to:

find_species_index(), stop_it(), fatal_error(), inevitably_fatal_error(), max_mn_name(), timing(), dot_mn(), der_onesided_4_slice_other()

subroutine  chemistry/write_net_reaction()

write net reactions to file

Call to:

stop_it(), fatal_error(), timing(), dot_mn(), find_species_index(), der_onesided_4_slice_other()

subroutine  chemistry/get_rhs_y_full(rhs_y)
Parameters:

rhs_y (mx,my,mz,nchemspec) [real,out]

Call to:

fatal_error(), find_species_index(), stop_it(), der_onesided_4_slice_other()

subroutine  chemistry/get_cs2_full(cs2_full)
Parameters:

cs2_full (mx,my,mz) [real,out]

Call to:

fatal_error(), find_species_index(), stop_it(), der_onesided_4_slice_other()

subroutine  chemistry/get_cs2_slice(f, slice, dir, index)

Find a slice of the speed of sound

10-dez-09/nils: coded

Parameters:
  • f (mx,my,mz,mfarray) [real]

  • slice (,) [real,out]

  • dir [integer,in]

  • index [integer,in]

Call to:

fatal_error(), find_species_index(), stop_it(), der_onesided_4_slice_other()

subroutine  chemistry/get_gamma_full(gamma_full)
Parameters:

gamma_full (mx,my,mz) [real,out]

Call to:

fatal_error(), find_species_index(), stop_it(), der_onesided_4_slice_other()

subroutine  chemistry/get_gamma_slice(f, slice, dir, index)

Get a 2D slice of gamma

10-dez-09/Nils Erland L. Haugen: coded

Parameters:
  • f (mx,my,mz,mfarray) [real]

  • slice (,) [real,out]

  • dir [integer,in]

  • index [integer,in]

Call to:

fatal_error(), find_species_index(), stop_it(), der_onesided_4_slice_other()

subroutine  chemistry/jacobn(f, jacob)

Compute the jacobian, i.e. the matrix jacob(nchemspec x nchemspec) where jacob(i,j)=dv_i/dc_j v is the vector of dimension nchemspec of the rates dc_j/dt (the c_j being concentrations, stocked in f among other)

28-may-09/rplasson: coded

exchange data

Parameters:
Call to:

der_onesided_4_slice_other(), stop_it(), find_species_index(), fatal_error()

subroutine  chemistry/get_mu1_slice(f, slice, grad_slice, index, sgn, direction)

For the NSCBC boudary conditions the slice of mu1 at the boundary, and its gradient, is required.

10-dez-09/Nils Erland L. Haugen: coded

Parameters:
  • f (mx,my,mz,mfarray) [real]

  • slice (,) [real,out]

  • grad_slice (,) [real,out]

  • index [integer,in]

  • sgn [integer,in]

  • direction [integer,in]

Use :

deriv (der_onesided_4_slice_other())

Call to:

der_onesided_4_slice_other(), stop_it(), find_species_index(), fatal_error()

subroutine  chemistry/get_reac_rate(wt, f, p)
Parameters:
Call to:

find_species_index(), stop_it(), fatal_error()

subroutine  chemistry/chemistry_clean_up()
Call to:

find_species_index(), stop_it(), fatal_error()

subroutine  chemistry/chemspec_normalization_n2(f)
Parameters:

f (mx,my,mz,mfarray) [real]

Call to:

find_species_index(), stop_it(), fatal_error()

subroutine  chemistry/chemistry_init_reduc_pointers()