neutraldensity
Module
Description
$Id$
This module is used both for the initial condition and during run time. It contains dlnrhon_dt and init_lnrhon, among other auxiliary routines.
** 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 :: lneutraldensity = .true.
MVAR CONTRIBUTION 1 MAUX CONTRIBUTION 0
PENCILS PROVIDED lnrhon; rhon; rhon1; glnrhon(3); grhon(3); PENCILS PROVIDED unglnrhon; ungrhon; del2rhon; glnrhon2 PENCILS PROVIDED del6lnrhon; del6rhon; snglnrhon(3); alpha; zeta
Quick access
- Variables:
alpha_prescription,alpha_time,ampllnrhon,borderlnrhon,diffrhon,diffrhon_hyper3,diffrhon_hyper3_aniso,diffrhon_shock,diffus_diffrhon,enum_alpha_prescription,enum_borderlnrhon,idiag_alprec,idiag_dtnd,idiag_lnrhon2m,idiag_lnrhonmphi,idiag_neutralmass,idiag_rhon2m,idiag_rhonm,idiag_rhonmax,idiag_rhonmin,idiag_rhonmphi,idiag_rhonmr,idiag_rhonmx,idiag_rhonmxy,idiag_rhonmy,idiag_rhonmz,idiag_unglnrhonm,idiffn,initlnrhon,kx_lnrhon,ky_lnrhon,kz_lnrhon,lcontinuity_neutral,ldiffn_hyper3,ldiffn_hyper3_aniso,ldiffn_hyper3_polar,ldiffn_hyper3lnrhon,ldiffn_normal,ldiffn_shock,lfreeze_lnrhonext,lfreeze_lnrhonint,lnrhon0,lnrhon_const,lnrhon_ext,lnrhon_int,lnrhon_left,lnrhon_right,lpretend_star,lramp_up,lupw_lnrhon,lupw_rhon,luse_as_ionization,rhon_const,rhon_left,rhon_right,set_border_neutraldensity,star_form_exponent,star_form_threshold- Routines:
calc_diagnostics_neutraldens(),calc_pencils_neutraldensity(),dlnrhon_dt(),init_lnrhon(),initialize_neutraldensity(),neutraldensity_after_boundary(),pencil_criteria_neutraldensity(),pencil_interdep_neutraldensity(),read_neutraldensity_init_pars(),read_neutraldensity_run_pars(),register_neutraldensity(),rprint_neutraldensity(),write_neutraldensity_init_pars(),write_neutraldensity_run_pars()
Needed modules
Variables
- neutraldensity/alpha [real,private/optional/default=0.0]
- neutraldensity/alpha_prescription [character,private/optional/default='const']
- neutraldensity/alpha_time [real,private]
- neutraldensity/ampllnrhon [real,private/optional/default=0.0]
- neutraldensity/borderlnrhon [character,private/optional/default='nothing']
- neutraldensity/diffrhon [real,private/optional/default=0.0]
- neutraldensity/diffrhon_hyper3 [real,private/optional/default=0.0]
- neutraldensity/diffrhon_hyper3_aniso (3) [real,private/optional/default=0.]
- neutraldensity/diffrhon_shock [real,private/optional/default=0.0]
- neutraldensity/enum_alpha_prescription [integer,private/optional/default=0]
- neutraldensity/enum_borderlnrhon [integer,private/optional/default=0]
- neutraldensity/idiag_alprec [integer,private/optional/default=0]
- neutraldensity/idiag_dtnd [integer,private/optional/default=0]
- neutraldensity/idiag_lnrhon2m [integer,private/optional/default=0]
- neutraldensity/idiag_lnrhonmphi [integer,private/optional/default=0]
- neutraldensity/idiag_neutralmass [integer,private/optional/default=0]
- neutraldensity/idiag_rhon2m [integer,private/optional/default=0]
- neutraldensity/idiag_rhonm [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmax [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmin [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmphi [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmr [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmx [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmxy [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmy [integer,private/optional/default=0]
- neutraldensity/idiag_rhonmz [integer,private/optional/default=0]
- neutraldensity/idiag_unglnrhonm [integer,private/optional/default=0]
- neutraldensity/idiffn (4) [character,private/optional/default='']
- neutraldensity/kx_lnrhon [real,private/optional/default=1.0]
- neutraldensity/ky_lnrhon [real,private/optional/default=1.0]
- neutraldensity/kz_lnrhon [real,private/optional/default=1.0]
- neutraldensity/lcontinuity_neutral [logical,private/optional/default=.true.]
- neutraldensity/ldiffn_hyper3 [logical,private/optional/default=.false.]
- neutraldensity/ldiffn_hyper3_aniso [logical,private/optional/default=.false.]
- neutraldensity/ldiffn_hyper3_polar [logical,private/optional/default=.false.]
- neutraldensity/ldiffn_hyper3lnrhon [logical,private/optional/default=.false.]
- neutraldensity/ldiffn_normal [logical,private/optional/default=.false.]
- neutraldensity/ldiffn_shock [logical,private/optional/default=.false.]
- neutraldensity/lfreeze_lnrhonext [logical,private/optional/default=.false.]
- neutraldensity/lfreeze_lnrhonint [logical,private/optional/default=.false.]
- neutraldensity/lmass_source [logical,private/optional/default=.false.]
- neutraldensity/lnrhon0 [real,private/optional/default=0.0]
- neutraldensity/lnrhon_const [real,private/optional/default=0.0]
- neutraldensity/lnrhon_ext [real,private/optional/default=0.0]
- neutraldensity/lnrhon_int [real,private/optional/default=0.0]
- neutraldensity/lnrhon_left [real,private/optional/default=0.0]
- neutraldensity/lnrhon_right [real,private/optional/default=0.0]
- neutraldensity/lpretend_star [logical,private/optional/default=.false.]
- neutraldensity/lramp_up [logical,private/optional/default=.false.]
- neutraldensity/lupw_lnrhon [logical,private/optional/default=.false.]
- neutraldensity/lupw_rhon [logical,private/optional/default=.false.]
- neutraldensity/luse_as_ionization [logical,private/optional/default=.false.]
- neutraldensity/ndiff_max [integer,private/parameter/optional/default=4]
- neutraldensity/rhon_const [real,private/optional/default=1.0]
- neutraldensity/rhon_left [real,private/optional/default=1.0]
- neutraldensity/rhon_right [real,private/optional/default=1.0]
- neutraldensity/set_border_neutraldensity [private]
- neutraldensity/star_form_exponent [real,private/optional/default=1.5]
- neutraldensity/star_form_threshold [real,private/optional/default=1.0]
- neutraldensity/zeta [real,private/optional/default=0.0]
Subroutines and functions
- subroutine neutraldensity/register_neutraldensity()
Initialise variables which should know that we solve the compressible hydro equations: ilnrhon; increase nvar accordingly.
28-feb-07/wlad: adapted from density
- Use :
- Call to:
not_implemented(),svn_id(),fatal_error(),warning(),request_border_driving(),sinwave(),initial_condition_lnrhon(),error(),del6(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/initialize_neutraldensity()
Perform any post-parameter-read initialization i.e. calculate derived parameters.
For compatibility with other applications, we keep the possibility of giving diffrhon units of dxmin*cs0, but cs0 is not well defined general
28-feb-07/wlad: adapted
- Use :
general(itoa()),borderprofiles(request_border_driving()),farraymanager- Call to:
fatal_error(),not_implemented(),warning(),request_border_driving(),sinwave(),initial_condition_lnrhon(),error(),del6(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/read_neutraldensity_init_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
sinwave(),fatal_error(),initial_condition_lnrhon(),error(),del6(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/write_neutraldensity_init_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
sinwave(),fatal_error(),initial_condition_lnrhon(),error(),del6(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/read_neutraldensity_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
sinwave(),fatal_error(),initial_condition_lnrhon(),error(),del6(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/write_neutraldensity_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
sinwave(),fatal_error(),initial_condition_lnrhon(),error(),del6(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/init_lnrhon(f)
initialise lnrhon; called from start.f90
28-feb-07/wlad: adapted
- Parameters:
f (,,*,*) [real,contiguous]
- Use :
general(notanumber()),initcond,initialcondition(initial_condition_lnrhon()),equationofstate(cs20(),cs2bot(),cs2top())- Call to:
sinwave(),fatal_error(),initial_condition_lnrhon(),error(),del6(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/pencil_criteria_neutraldensity()
All pencils that the NeutralDensity module depends on are specified here.
28-feb-07/wlad: adapted
always needed for ionization and recombination
- subroutine neutraldensity/pencil_interdep_neutraldensity(lpencil_in)
- Interdependency among pencils from the NeutralDensity module is
specified here.
28-feb-07/wlad: adapted
- Parameters:
lpencil_in (npencils) [logical]
- Call to:
del6(),fatal_error(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/calc_pencils_neutraldensity(f, p)
Calculate NeutralDensity pencils. Most basic pencils should come first, as others may depend on them.
28-feb-07/wlad: adapted
- Parameters:
f (,,*,*) [real,inout,contiguous]
p [pencil_case,inout]
- Use :
sub(grad(),dot(),dot2(),u_dot_grad(),del2(),del6(),multmv(),g2ij())- Call to:
del6(),fatal_error(),identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/neutraldensity_after_boundary(f)
- Parameters:
f (,,*,*) [real,contiguous]
- Use :
- Call to:
identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/dlnrhon_dt(f, df, p)
continuity equation calculate dlnrhon/dt = - un.gradlnrhon - divun
28-feb-07/wlad: adapted
- Parameters:
f (,,*,*) [real,in,contiguous]
df (,,*,*) [real,out,contiguous]
p [pencil_case,in]
- Use :
- Call to:
identify_bcs(),del6fj(),der6(),dot_mn(),calc_diagnostics_neutraldens(),phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/calc_diagnostics_neutraldens(p)
- Parameters:
p [pencil_case]
- Use :
- Call to:
phisum_mn_name_rz(),phizsum_mn_name_r(),xysum_mn_name_z(),yzsum_mn_name_x(),xzsum_mn_name_y(),sum_lim_mn_name(),max_mn_name(),border_driving()
- subroutine neutraldensity/rprint_neutraldensity(lreset[, lwrite])
reads and registers print parameters relevant for compressible part
28-feb-07/wlad: adapted
- Parameters:
lreset [logical]
lwrite [logical]
- Use :
diagnostics(parse_name()),farraymanager(farray_index_append())