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/diffus_diffrhon (nx) [real,private]
  • 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/initlnrhon (ninit) [character,private/optional/default='nothing']
  • 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 :

farraymanager

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 :

file_io (parallel_unit())

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 :

file_io (parallel_unit())

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

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/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 :

general (keep_compiler_quiet())

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 :

deriv (der6()), sub (identify_bcs(), del6fj(), dot_mn())

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 :

diagnostics

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())