test_eos_chemistry
Module
Description
$Id$
Equation of state for an ideal gas without ionization.
** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module
CPARAM logical, parameter :: leos = .true.
MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 0
PENCILS PROVIDED lnTT; glnTT(3); TT; TT1; gTT(3) PENCILS PROVIDED pp; del2pp; mu1; gmu1(3); glnmu(3) PENCILS PROVIDED rho1gpp(3); glnpp(3); del2lnTT
PENCILS PROVIDED hss(3,3); hlnTT(3,3); del2ss; del6ss; del6lnTT PENCILS PROVIDED yH; ee; ss; delta; glnmumol(3); ppvap; csvap2; cs2 PENCILS PROVIDED cp1tilde; cp; gamma_m1; gamma PENCILS PROVIDED rho_anel; gradcp(3)
Quick access
- Variables:
b_ext_eos,bc_lnrho_hdss_z_liso,calc_pencils_eos,calc_pencils_eos_pencpar,calc_pencils_eos_std,chih_ev,chihminus_ev,cp_const,cpdry,cpdry1,cs0,cs20,cs20_tdep_rate,cs2_tdep_ascale_power,cs2bot,cs2top,cvdry,cvdry1,dlnrho0dz,ee_ion,enum_tdep_cs2_type,eos_before_boundary,eos_update_aux,eoscalc,eoscalc_elem,eoscalc_farray,eoscalc_farray_range,eoscalc_pencil,eoscalc_point,eoscalc_point_f,eosperturb,error_cp,fac_cs,find_mass,get_average_pressure,get_cp,get_cv,get_soundspeed,get_ss,get_ss_pencil,get_stratz,getmu,gz_coeff,gztype,ics,icv,idelta,ieosvar1,ieosvar2,ieosvar_count,ieosvars,ifvap,iglobal_cs2,iglobal_glntt,imumol1,inabad,init_eos,input_file,ioncalc,ioninit,isothermal_lnrho_ss,isothmid,ivars_mod,kappa0,kappa_cst,l_cp,l_gamma,l_gamma_m1,lcalc_cp,lcalc_cp_full,lcheminp_eos,lconst_yh,lcp_as_aux,lcs2_tdep,lcs_as_aux,lcs_as_comaux,lcv_as_aux,ldelta_as_aux,leos_isentropic,leos_isobaric,leos_isochoric,leos_isothermal,leos_localisothermal,lgamma_as_aux,lhminus_opacity_correction,lhubble_eos,linterp_pressure,ll1,ll2,lnabad_as_aux,lnpp_bot,lnrho0,lnrho_e,lnrho_e_,lnrho_h,lnrho_he,lnrho_p,lntt_ion,lntt_ion_,lnttlnrho,lnttss,lpp_as_aux,lpres_grad,lrevise_chih_ev,lrevise_chihminus_ev,lss_as_aux,lstratset,mm1,mm2,mu1_0,mu1_full,mu1yhxhe,mudry,mudry1,muvap,muvap1,nabla_ad,nn1,nn2,one_yh_term,opacity_type,pp0,pp_ion,pr_number,pres_corr,pressure_gradient,pressure_gradient_farray,pressure_gradient_point,read_species,read_thermodyn,rgas_cgs,rho0,rho02,rho_e,rho_e_,rho_h,rho_he,rtsafe,rtsafe_pencil,saha,scale_rgas,set_stratz,sigmasbt,srad0,ss_ion,ss_ion1,tau_relax,tdep_cs2_type,temperature_gradient,temperature_hessian,temperature_laplacian,tt_ion,tt_ion_,va2max_eos,va2power_eos,write_thermodyn,xh2,xhe,xhe_term,xtop,yh0,yh_const,yh_term,yhacc,yhmax,yhmin,ymetals- Routines:
bc_ism(),bc_lnrho_hds_z_iso(),bc_lnrho_pressure_z(),bc_lnrho_temp_z(),bc_ss_a2stemp_x(),bc_ss_a2stemp_y(),bc_ss_a2stemp_z(),bc_ss_energy(),bc_ss_flux(),bc_ss_flux_condturb_mean_x(),bc_ss_flux_condturb_x(),bc_ss_flux_condturb_z(),bc_ss_flux_turb(),bc_ss_flux_turb_x(),bc_ss_stemp_x(),bc_ss_stemp_y(),bc_ss_stemp_z(),bc_ss_temp2_z(),bc_ss_temp3_z(),bc_ss_temp_old(),bc_ss_temp_x(),bc_ss_temp_y(),bc_ss_temp_z(),bc_stellar_surface(),eos_before_boundary(),get_average_pressure(),get_gamma_etc(),get_slices_eos(),get_soundspeed(),get_stratz(),getdensity(),getmu(),getpressure(),gettemperature(),init_eos(),initialize_eos(),ioncalc(),isothermal_entropy(),isothermal_lnrho_ss(),pencil_criteria_eos(),pencil_interdep_eos(),read_eos_init_pars(),read_eos_run_pars(),register_eos(),rprint_eos(),select_eos_variable(),temperature_gradient(),temperature_hessian(),temperature_laplacian(),units_eos(),write_eos_init_pars(),write_eos_run_pars()
Needed modules
cparam: $Id$cdata: $Id$general(keep_compiler_quiet()): $Id$messages: $Id$
Variables
- equationofstate/calc_pencils_eos [public]
- equationofstate/calc_pencils_eos_pencpar [private]
- equationofstate/calc_pencils_eos_std [private]
- equationofstate/cp [real,private/optional/default=impossible]
- equationofstate/cp1 [real,private/optional/default=impossible]
- equationofstate/cp_const [real,public/optional/default=impossible]
- equationofstate/cs0 [real,public/optional/default=1.0]
- equationofstate/cs20 [real,public/optional/default=1.0]
- equationofstate/cs2bot [real,public/optional/default=1.0]
- equationofstate/cs2top [real,public/optional/default=1.0]
- equationofstate/cv [real,private/optional/default=impossible]
- equationofstate/cv1 [real,private/optional/default=impossible]
- equationofstate/eoscalc [public]
- equationofstate/eoscalc_farray [private]
- equationofstate/eoscalc_pencil [private]
- equationofstate/eoscalc_point [private]
- equationofstate/eosperturb [private]
- equationofstate/error_cp [real,private/optional/default=1e-06]
- equationofstate/find_mass [private]
- equationofstate/gamma [real,private/optional/default=1.6666666666666667]
- equationofstate/gamma1 [real,private]
- equationofstate/gamma_m1 [real,private]
- equationofstate/ics [integer,private]
- equationofstate/ieosvar1 [integer,private/optional/default=-1]
- equationofstate/ieosvar2 [integer,private/optional/default=-1]
- equationofstate/ieosvar_count [integer,private/optional/default=0]
- equationofstate/ieosvars [integer,private/optional/default=-1]
- equationofstate/iglobal_cs2 [integer,private]
- equationofstate/iglobal_glntt [integer,private]
- equationofstate/ilnrho_cs2 [integer,parameter=5]
- equationofstate/ilnrho_ee [integer,parameter=2]
- equationofstate/ilnrho_eth [integer,parameter=14]
- equationofstate/ilnrho_lntt [integer,parameter=4]
- equationofstate/ilnrho_pp [integer,parameter=3]
- equationofstate/ilnrho_ss [integer,parameter=1]
- equationofstate/ilnrho_tt [integer,parameter=9]
- equationofstate/imass [integer,public/optional/default=1]
- equationofstate/input_file [character,private]
- equationofstate/ioninit [private]
- equationofstate/ipp_cs2 [integer,parameter=12]
- equationofstate/ipp_ss [integer,parameter=11]
- equationofstate/irho_cs2 [integer,parameter=6]
- equationofstate/irho_ee [public]
- equationofstate/irho_eth [integer,parameter=13]
- equationofstate/irho_lntt [integer,parameter=8]
- equationofstate/irho_pp [public]
- equationofstate/irho_ss [integer,parameter=7]
- equationofstate/irho_tt [integer,parameter=10]
- equationofstate/l_cp [logical,private/optional/default=.false.]
- equationofstate/l_gamma [logical,private/optional/default=.false.]
- equationofstate/l_gamma_m1 [logical,private/optional/default=.false.]
- equationofstate/lcheminp_eos [logical,private/save/optional/default=.false.]
- equationofstate/leos_isentropic [logical,private/optional/default=.false.]
- equationofstate/leos_isobaric [logical,private/optional/default=.false.]
- equationofstate/leos_isochoric [logical,private/optional/default=.false.]
- equationofstate/leos_isothermal [logical,private/optional/default=.false.]
- equationofstate/leos_localisothermal [logical,private/optional/default=.false.]
- equationofstate/ll1 [integer,private]
- equationofstate/ll2 [integer,private]
- equationofstate/lnrho0 [real,public/optional/default=0.0]
- equationofstate/lntt0 [real,public/optional/default=impossible]
- equationofstate/lpres_grad [public]
- equationofstate/mm1 [integer,private]
- equationofstate/mm2 [integer,private]
- equationofstate/mu [real,private/optional/default=1.0]
- equationofstate/nn1 [integer,private]
- equationofstate/nn2 [integer,private]
- equationofstate/pr_number [real,public/optional/default=0.7]
- equationofstate/pressure_gradient [public]
- equationofstate/pressure_gradient_farray [private]
- equationofstate/pressure_gradient_point [private]
- equationofstate/read_species [private]
- equationofstate/read_thermodyn [private]
- equationofstate/rgas [real,private]
- equationofstate/rgas_cgs [real,private/optional/default=0.0]
- equationofstate/rgas_unit_sys [real,private/optional/default=1.0]
- equationofstate/rho0 [real,public/optional/default=1.0]
- equationofstate/species_constants (nchemspec,18) [real,private]
- equationofstate/write_thermodyn [private]
Subroutines and functions
- subroutine equationofstate/register_eos()
14-jun-03/axel: adapted from register_eos
- Call to:
svn_id(),stop_it(),fatal_error(),warning(),not_implemented(),find_species_index()
- subroutine equationofstate/units_eos()
This routine calculates things related to units and must be called before the rest of the units are being calculated.
22-jun-06/axel: adapted from initialize_eos 16-mar-10/Natalia
- Use :
- Call to:
stop_it(),fatal_error(),warning(),not_implemented(),find_species_index()
- subroutine equationofstate/initialize_eos()
- Use :
- Call to:
fatal_error(),warning(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/select_eos_variable(variable, findex)
Select eos variable
02-apr-06/tony: implemented
- Parameters:
variable [character,in]
findex [integer,in]
- Use :
- Call to:
fatal_error(),warning(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/getmu([f, mu_tmp])
Calculate average particle mass in the gas relative to
12-aug-03/tony: implemented 23 may-10/nils: fleshed it up
- Parameters:
- Call to:
fatal_error(),warning(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/rprint_eos(lreset[, lwrite])
- Parameters:
lreset [logical]
lwrite [logical]
- Call to:
fatal_error(),warning(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/get_slices_eos(f, slices)
Write slices for animation of Eos variables.
26-jul-06/tony: coded
- Parameters:
slices [slice_data]
- Use :
- Call to:
fatal_error(),warning(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/pencil_criteria_eos()
All pencils that the EquationOfState module depends on are specified here.
02-04-06/tony: coded
EOS is a pencil provider but evolves nothing so it is unlokely that it will require any pencils for it’s own use.
- Call to:
fatal_error(),warning(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/pencil_interdep_eos(lpencil_in)
Interdependency among pencils from the Entropy module is specified here.
20-11-04/anders: coded
Modified by Natalia. Taken from eos_temperature_ionization module
- Parameters:
lpencil_in (npencils) [logical]
- Call to:
fatal_error(),warning(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/ioncalc(f)
calculate degree of ionization and temperature This routine is called from equ.f90 and operates on the full 3-D array.
13-jun-03/tobi: coded
- Parameters:
- Call to:
warning(),fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/getdensity(f[, ee[, tt[, yh, rho_full]]])
- Parameters:
- Call to:
warning(),fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/gettemperature(f, tt_full)
- Parameters:
- Call to:
warning(),fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/getpressure(pp, tt, rho, mu1)
- Parameters:
- Call to:
warning(),fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/get_gamma_etc([gamma[, cp[, cv[, f]]]])
- Parameters:
gamma [real,out,]
cp [real,out,]
cv [real,out,]
f (mfarray) [real,in,]
- Call to:
warning(),fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/temperature_gradient(f, glnrho, gss, glntt)
Calculate thermodynamical quantities and optionally glnPP and glnTT gP/rho=cs2*(glnrho+cp1*gss)
17-nov-03/tobi: adapted from subroutine eoscalc
- Parameters:
- Call to:
fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/temperature_laplacian(f, del2lnrho, del2ss, del2lntt)
Calculate thermodynamical quantities and optionally glnPP and glnTT gP/rho=cs2*(glnrho+cp1*gss)
17-nov-03/tobi: adapted from subroutine eoscalc
- Parameters:
- Call to:
fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/temperature_hessian(f, hlnrho, hss, hlntt)
Calculate thermodynamical quantities, cs2 and cp1 and optionally hlnPP and hlnTT hP/rho=cs2*(hlnrho+cp1*hss)
17-nov-03/tobi: adapted from subroutine eoscalc
- Parameters:
- Call to:
fatal_error(),not_implemented(),stop_it(),find_species_index()
- subroutine equationofstate/get_soundspeed(tt, cs2)
Calculate sound speed for given temperature
20-Oct-03/tobi: Coded
- Parameters:
tt [real,in]
cs2 [real,out]
- Call to:
- subroutine equationofstate/read_eos_init_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine equationofstate/write_eos_init_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine equationofstate/read_eos_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine equationofstate/write_eos_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine equationofstate/isothermal_entropy(f, t0)
Isothermal stratification (for lnrho and ss) This routine should be independent of the gravity module used. When entropy is present, this module also initializes entropy.
Sound speed (and hence Temperature), is initialised to the reference value:
sound speed: cs^2_0 from start.in density: rho0 = exp(lnrho0)
- 11-jun-03/tony: extracted from isothermal routine in Density module
to allow isothermal condition for arbitrary density
17-oct-03/nils: works also with leos_ionization=T 18-oct-03/tobi: distributed across ionization modules
- Parameters:
- Call to:
- subroutine equationofstate/isothermal_lnrho_ss(f, t0, rho0)
Isothermal stratification for lnrho and ss (for yH=0!)
Currently only implemented for ionization_fixed.
- Parameters:
- Call to:
- subroutine equationofstate/get_average_pressure(average_density, average_pressure)
01-dec-2009/piyali+dhrube: coded
- Parameters:
average_density [real,in]
average_pressure [real,out]
- Call to:
- subroutine equationofstate/bc_ss_flux(f, topbot[, lone_sided])
constant flux boundary condition for entropy (called when bcz=’c1’)
23-jan-2002/wolf: coded 11-jun-2002/axel: moved into the entropy module
8-jul-2002/axel: split old bc_ss into two
- 26-aug-2003/tony: distributed across ionization modules
3-oct-16/MR: added new optional switch lone_sided
- Parameters:
f (,,*,*) [real]
topbot [character]
lone_sided [logical]
- Call to:
- subroutine equationofstate/bc_ss_flux_turb(f, topbot)
dummy routine
4-may-2009/axel: dummy routine
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_flux_turb_x(f, topbot)
dummy routine
31-may-2010/pete: dummy routine
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_flux_condturb_x(f, topbot)
23-apr-2014/pete: dummy
- Parameters:
- Call to:
- subroutine equationofstate/bc_ss_flux_condturb_mean_x(f, topbot)
07-jan-2015/pete: dummy
- Parameters:
- Call to:
- subroutine equationofstate/bc_ss_flux_condturb_z(f, topbot)
15-jul-2014/pete: dummy
- Parameters:
- Call to:
- subroutine equationofstate/bc_ss_temp_old(f, topbot)
boundary condition for entropy: constant temperature
23-jan-2002/wolf: coded 11-jun-2002/axel: moved into the entropy module
8-jul-2002/axel: split old bc_ss into two
23-jun-2003/tony: implemented for leos_fixed_ionization 26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_temp_x(f, topbot)
boundary condition for entropy: constant temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_temp_y(f, topbot)
boundary condition for entropy: constant temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_temp_z(f, topbot[, lone_sided])
boundary condition for entropy: constant temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
lone_sided [logical]
- Call to:
- subroutine equationofstate/bc_lnrho_temp_z(f, topbot)
boundary condition for lnrho and ss: constant temperature
27-sep-2002/axel: coded 19-aug-2005/tobi: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_lnrho_pressure_z(f, topbot)
boundary condition for lnrho: constant pressure
4-apr-2003/axel: coded 1-may-2003/axel: added the same for top boundary
19-aug-2005/tobi: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_temp2_z(f, topbot)
boundary condition for entropy: constant temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_temp3_z(f, topbot)
31-jan-2013/axel: coded to impose cs2bot and dcs2bot at bottom
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_stemp_x(f, topbot)
boundary condition for entropy: symmetric temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_stemp_y(f, topbot)
boundary condition for entropy: symmetric temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_stemp_z(f, topbot)
boundary condition for entropy: symmetric temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_a2stemp_x(f, topbot)
boundary condition for entropy: symmetric temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_a2stemp_y(f, topbot)
boundary condition for entropy: symmetric temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_a2stemp_z(f, topbot)
boundary condition for entropy: symmetric temperature
3-aug-2002/wolf: coded
26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_ss_energy(f, topbot)
boundary condition for entropy
may-2002/nils: coded 11-jul-2002/nils: moved into the entropy module 26-aug-2003/tony: distributed across ionization modules
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_stellar_surface(f, topbot)
- Parameters:
f (,,*,*) [real]
topbot [character]
- Call to:
- subroutine equationofstate/bc_lnrho_cfb_r_iso(f, topbot)
Boundary condition for radial centrifugal balance
21-aug-2006/wlad: coded
- Parameters:
f (,,*,*) [real,inout]
topbot [character,in]
- Call to:
- subroutine equationofstate/bc_lnrho_hds_z_iso(f, topbot)
Boundary condition for density and entropy.
12-Juil-2006/dintrans: coded
- Parameters:
f (,,*,*) [real,inout]
topbot [character,in]
- Called from:
initialize_boundcond(),boundconds_x_c(),boundconds_y_c(),boundconds_z_c()- Call to:
- subroutine equationofstate/bc_lnrho_hdss_z_iso(f, topbot)
Smooth out density perturbations with respect to hydrostatic stratification in Fourier space. 05-jul-07/tobi: Adapted from bc_aa_pot3
- Parameters:
f (,,*,*) [real,inout]
topbot [character,in]
- Call to:
- subroutine equationofstate/get_stratz(z[, rho0z[, dlnrho0dz[, eth0z]]])
Get background stratification in z direction.
13-oct-14/ccyang: dummy
- Parameters:
z (*) [real,in]
rho0z (*) [real,out,]
dlnrho0dz (*) [real,out,]
eth0z (*) [real,out,]
- Call to: