ascalar

Module

Description

This module is used to solve the equation of supersaturation for either the Smoluchowski approach or the swarm model.

** 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 :: lascalar = .true.

MVAR CONTRIBUTION 2 MAUX CONTRIBUTION 1 !!! COMMUNICATED AUXILIARIES 1

PENCILS PROVIDED acc PENCILS PROVIDED gacc(3); ugacc PENCILS PROVIDED del2acc PENCILS PROVIDED ssat PENCILS PROVIDED ttc PENCILS PROVIDED gttc(3); ugttc PENCILS PROVIDED del2ttc


Quick access

Variables:

acc_const, acc_mean, amplacc, amplttc, ascalar_after_boundary, ascalar_diff, buoyancy, calc_accmean, calc_ttcmean, const1_qvs, const2_qvs, consttt, cp_constant, es_t, gradacc0, gravity_acceleration, idiag_acc_mean, idiag_accm, idiag_accmax, idiag_accmin, idiag_accmz, idiag_accrms, idiag_buoyancym, idiag_buoyancymax, idiag_buoyancymin, idiag_buoyancyrms, idiag_condensationratem, idiag_condensationratemax, idiag_condensationratemin, idiag_condensationraterms, idiag_esm, idiag_esmax, idiag_esmin, idiag_esrms, idiag_qvsm, idiag_qvsmax, idiag_qvsmin, idiag_qvsrms, idiag_ssatm, idiag_ssatmax, idiag_ssatmin, idiag_ssatrms, idiag_tauascalarmax, idiag_tauascalarmin, idiag_tauascalarrms, idiag_ttc_mean, idiag_ttcm, idiag_ttcmax, idiag_ttcmin, idiag_ttcrms, idiag_uxaccm, idiag_uyaccm, idiag_uzaccm, idiag_watermixingratiom, idiag_watermixingratiomax, idiag_watermixingratiomin, idiag_watermixingratiorms, initacc, initttc, l_t_source, lascalar_sink, latent_heat, lbuoyancy, lconsttt, ltt_mean, lttc, lttc_mean, lupdraft, lupw_acc, lupw_ttc, noascalar, qv_env, qvs_t, rascalar_sink, reinitialize_acc, rv_over_rd_minus_one, t_env, thermal_diff, tt_mean, ttc_const, ttc_mean, updraft, widthacc, widthttc, z0_acc

Routines:

calc_diagnostics_ascalar(), calc_pencils_ascalar(), dacc_dt(), init_acc(), initialize_ascalar(), pencil_criteria_ascalar(), pencil_interdep_ascalar(), read_ascalar_init_pars(), read_ascalar_run_pars(), register_ascalar(), rprint_ascalar(), write_ascalar_init_pars(), write_ascalar_run_pars()

Needed modules

Variables

  • ascalar/a1 [real,private/optional/default=0.0]
  • ascalar/acc_const [real,private/optional/default=0.0]
  • ascalar/acc_mean (1) [real,private/optional/default=1.e-2]
  • ascalar/amplacc [real,private/optional/default=0.0]
  • ascalar/amplttc [real,private/optional/default=0.0]
  • ascalar/ascalar_after_boundary [private]
  • ascalar/ascalar_diff [real,private/optional/default=0.0]
  • ascalar/buoyancy (nx) [real,private/optional/default=0.0]
  • ascalar/calc_accmean [private]
  • ascalar/calc_ttcmean [private]
  • ascalar/const1_qvs [real,private/optional/default=253000000000.0]
  • ascalar/const2_qvs [real,private/optional/default=5420.0]
  • ascalar/consttt [real,private/optional/default=293.25]
  • ascalar/cp_constant [real,private/optional/default=1005.0]
  • ascalar/es_t (nx) [real,private/optional/default=0.0]
  • ascalar/gradacc0 (3) [real,private/optional/default=(/0.0,0.0,0.0/)]
  • ascalar/gradtt0 (3) [real,private/optional/default=(/0.0,0.0,0.0/)]
  • ascalar/gravity_acceleration [real,private/optional/default=9.81]
  • ascalar/idiag_acc_mean [integer,private/optional/default=0]
  • ascalar/idiag_accm [integer,private/optional/default=0]
  • ascalar/idiag_accmax [integer,private/optional/default=0]
  • ascalar/idiag_accmin [integer,private/optional/default=0]
  • ascalar/idiag_accmz [integer,private/optional/default=0]
  • ascalar/idiag_accrms [integer,private/optional/default=0]
  • ascalar/idiag_buoyancym [integer,private/optional/default=0]
  • ascalar/idiag_buoyancymax [integer,private/optional/default=0]
  • ascalar/idiag_buoyancymin [integer,private/optional/default=0]
  • ascalar/idiag_buoyancyrms [integer,private/optional/default=0]
  • ascalar/idiag_condensationratem [integer,private/optional/default=0]
  • ascalar/idiag_condensationratemax [integer,private/optional/default=0]
  • ascalar/idiag_condensationratemin [integer,private/optional/default=0]
  • ascalar/idiag_condensationraterms [integer,private/optional/default=0]
  • ascalar/idiag_esm [integer,private/optional/default=0]
  • ascalar/idiag_esmax [integer,private/optional/default=0]
  • ascalar/idiag_esmin [integer,private/optional/default=0]
  • ascalar/idiag_esrms [integer,private/optional/default=0]
  • ascalar/idiag_qvsm [integer,private/optional/default=0]
  • ascalar/idiag_qvsmax [integer,private/optional/default=0]
  • ascalar/idiag_qvsmin [integer,private/optional/default=0]
  • ascalar/idiag_qvsrms [integer,private/optional/default=0]
  • ascalar/idiag_ssatm [integer,private/optional/default=0]
  • ascalar/idiag_ssatmax [integer,private/optional/default=0]
  • ascalar/idiag_ssatmin [integer,private/optional/default=0]
  • ascalar/idiag_ssatrms [integer,private/optional/default=0]
  • ascalar/idiag_tauascalarmax [integer,private/optional/default=0]
  • ascalar/idiag_tauascalarmin [integer,private/optional/default=0]
  • ascalar/idiag_tauascalarrms [integer,private/optional/default=0]
  • ascalar/idiag_ttc_mean [integer,private/optional/default=0]
  • ascalar/idiag_ttcm [integer,private/optional/default=0]
  • ascalar/idiag_ttcmax [integer,private/optional/default=0]
  • ascalar/idiag_ttcmin [integer,private/optional/default=0]
  • ascalar/idiag_ttcrms [integer,private/optional/default=0]
  • ascalar/idiag_uxaccm [integer,private/optional/default=0]
  • ascalar/idiag_uyaccm [integer,private/optional/default=0]
  • ascalar/idiag_uzaccm [integer,private/optional/default=0]
  • ascalar/idiag_watermixingratiom [integer,private/optional/default=0]
  • ascalar/idiag_watermixingratiomax [integer,private/optional/default=0]
  • ascalar/idiag_watermixingratiomin [integer,private/optional/default=0]
  • ascalar/idiag_watermixingratiorms [integer,private/optional/default=0]
  • ascalar/initacc [character,private/optional/default='nothing']
  • ascalar/initttc [character,private/optional/default='nothing']
  • ascalar/l_t_source [logical,private/optional/default=.true.]
  • ascalar/lascalar_sink [logical,private/optional/default=.false.]
  • ascalar/latent_heat [real,private/optional/default=2500000.0]
  • ascalar/lbuoyancy [logical,private/optional/default=.false.]
  • ascalar/lcondensation_rate [logical,private/optional/default=.false.]
  • ascalar/lconsttt [logical,private/optional/default=.false.]
  • ascalar/ltauascalar [logical,private/optional/default=.false.]
  • ascalar/ltt_mean [logical,private/optional/default=.false.]
  • ascalar/lttc [logical,private/optional/default=.false.]
  • ascalar/lttc_mean [logical,private/optional/default=.false.]
  • ascalar/lupdraft [logical,private/optional/default=.false.]
  • ascalar/lupw_acc [logical,private/optional/default=.false.]
  • ascalar/lupw_ttc [logical,private/optional/default=.false.]
  • ascalar/noascalar [logical,private/optional/default=.false.]
  • ascalar/qv_env [real,private/optional/default=0.0163]
  • ascalar/qvs_t (nx) [real,private/optional/default=0.0]
  • ascalar/rascalar_sink [logical,private/optional/default=.false.]
  • ascalar/reinitialize_acc [logical,private/optional/default=.false.]
  • ascalar/rhoa [real,private/optional/default=1.06]
  • ascalar/rv [real,private/optional/default=461.5]
  • ascalar/rv_over_rd_minus_one [real,private/optional/default=0.608]
  • ascalar/ssat0 [real,private/target/optional/default=0.0]
  • ascalar/t_env [real,private/optional/default=293.0]
  • ascalar/thermal_diff [real,private/optional/default=0.0]
  • ascalar/tt_mean [real,private/optional/default=293.25]
  • ascalar/ttc_const [real,private/optional/default=0.0]
  • ascalar/ttc_mean (1) [real,private/optional/default=293.0]
  • ascalar/updraft [real,private/optional/default=0.0]
  • ascalar/vapor_mixing_ratio_qvs [real,private/optional/default=0.0]
  • ascalar/widthacc [real,private/optional/default=0.0]
  • ascalar/widthttc [real,private/optional/default=0.0]
  • ascalar/z0_acc [real,private/optional/default=0.0]

Subroutines and functions

subroutine  ascalar/register_ascalar()

Initialise the acc variable and increase nvar accordingly

3-jun-16/xiangyu: adapted from pscalar_nolog

Use :

farraymanager, sharedvariables (put_shared_variable())

Call to:

svn_id(), init_acc(), fatal_error(), identify_bcs(), calc_diagnostics_ascalar(), max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/initialize_ascalar(f)

Perform any necessary post-parameter read initialization Since the passive scalar is often used for diagnostic purposes one may want to reinitialize it to its initial distribution.

Parameters:

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

Call to:

init_acc(), fatal_error(), identify_bcs(), calc_diagnostics_ascalar(), max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/init_acc(f)

initialise passive scalar field; called from start.f90

Parameters:

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

Use :

sub, initcond

Call to:

fatal_error(), identify_bcs(), calc_diagnostics_ascalar(), max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/pencil_criteria_ascalar()

All pencils that the Ascalar module depends on are specified here.

Call to:

identify_bcs(), calc_diagnostics_ascalar(), max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/pencil_interdep_ascalar(lpencil_in)

Interdependency among pencils provided by the Pscalar module is specified here.

Parameters:

lpencil_in (npencils) [logical]

Call to:

identify_bcs(), calc_diagnostics_ascalar(), max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/calc_pencils_ascalar(f, p)

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

Parameters:
Use :

sub

Call to:

identify_bcs(), calc_diagnostics_ascalar(), max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/dacc_dt(f, df, p)

Active scalar evolution for supersation Calculate dacc/dt=-uu.gacc + supersat_diff*[del2acc + glnrho.gacc].

27-may-16/xiangyu: adapted from pscalar_nolog

4-sep-16/axel: added more diagnostics

Parameters:
Use :

sub

Call to:

identify_bcs(), calc_diagnostics_ascalar(), max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/calc_diagnostics_ascalar(p)

Diagnostics

Parameters:

p [pencil_case]

Use :

diagnostics

Call to:

max_mn_name(), save_name(), xysum_mn_name_z(), global_mean()

subroutine  ascalar/read_ascalar_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  ascalar/write_ascalar_init_pars(unit)
Parameters:

unit [integer,in]

subroutine  ascalar/read_ascalar_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  ascalar/write_ascalar_run_pars(unit)
Parameters:

unit [integer,in]

subroutine  ascalar/rprint_ascalar(lreset[, lwrite])
Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics, farraymanager (farray_index_append())