pscalar_nolog

Module

Description

$Id$

This modules solves (multiple) passive scalar advection equation(s) Solves for c, not ln(c).

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

MVAR CONTRIBUTION 1 MAUX CONTRIBUTION 0

PENCILS PROVIDED cc(npscalar); cc1(npscalar) PENCILS PROVIDED gcc(3,npscalar); ugcc(npscalar) PENCILS PROVIDED gcc2(npscalar); gcc1(npscalar) PENCILS PROVIDED del2cc(npscalar); del6cc(npscalar) PENCILS PROVIDED g5cc(3,npscalar); g5ccglnrho(npscalar) PENCILS PROVIDED hcc(3,3,npscalar) ***********************************************************

Quick access

Variables:

amplcc, amplcc2, ampllncc, ampllncc2, bump, bunit, cc2m, cc_const, cc_left, cc_min, cc_right, cc_xyaver, delta_lncc, diffcc_shock, epsilon_cc, epsilon_lncc, gcc2m, gradc0, hhh, hoverr, icc_end, idiag_cc10m, idiag_cc1m, idiag_cc2m, idiag_cc2mz, idiag_cc3m, idiag_cc4m, idiag_cc5m, idiag_cc6m, idiag_cc7m, idiag_cc8m, idiag_cc9m, idiag_ccglnrm, idiag_ccm, idiag_ccmax, idiag_ccmin, idiag_ccmx, idiag_ccmxy, idiag_ccmxz, idiag_ccmy, idiag_ccmz, idiag_ccrms, idiag_ccugum, idiag_cluz_uzlcm, idiag_crmsm, idiag_cugccm, idiag_cz2m, idiag_cz4m, idiag_gcc10m, idiag_gcc1m, idiag_gcc2m, idiag_gcc3m, idiag_gcc4m, idiag_gcc5m, idiag_gcc6m, idiag_gcc7m, idiag_gcc8m, idiag_gcc9m, idiag_gcguzm, idiag_lnccm, idiag_lnccmx, idiag_lnccmy, idiag_lnccmz, idiag_mcct, idiag_mrclncm, idiag_qpsclm, idiag_qrhoccm, idiag_rhoc2m, idiag_rhoc3m, idiag_rhoccm, idiag_rhoccmax, idiag_ucm, idiag_uudcm, idiag_uxcm, idiag_uxcmz, idiag_uycm, idiag_uycmz, idiag_uzcm, idiag_uzcmz, initcc, initcc2, initlncc, initlncc2, kx_cc, kx_lncc, kxx_cc, ky_cc, ky_lncc, kyy_cc, kz_cc, kz_lncc, kzz_cc, lam_gradc, lambda_cc, ldustdrift, lgradc_profile, ll_sh, llambda_cc, lmean_friction_cc, lncc_min, lnotpassive, lpscalar_diff_simple, lpscalar_per_unitvolume, lpscalar_per_unitvolume_diff, lpscalar_sink, lreactions, lremove_mean, lupw_cc, lupw_lncc, mean_friction_cc, mm_sh, n_xprof, nopscalar, om_gradc, powerlr, pscalar_diff, pscalar_diff_hyper3, pscalar_diff_shock, pscalar_sink, radius_cc, radius_lncc, reinitialize_cc, reinitialize_lncc, rhoccm, rpscalar_sink, scalaracc, soret_diff, spharm, tensor_diff, tensor_pscalar_diff, widthcc, widthlncc, widthlncc1, widthlncc2, zoverh

Routines:

calc_diagnostics_pscalar(), calc_mpscalar(), calc_pencils_pscalar(), dlncc_dt(), get_slices_pscalar(), init_lncc(), initialize_pscalar(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), pscalar_before_boundary(), read_pscalar_init_pars(), read_pscalar_run_pars(), register_pscalar(), rprint_pscalar(), write_pscalar_init_pars(), write_pscalar_run_pars()

Needed modules

Variables

  • pscalar/amplcc [real,private/optional/default=0.1]
  • pscalar/amplcc2 [real,private/optional/default=0.0]
  • pscalar/ampllncc [real,private/optional/default=impossible]
  • pscalar/ampllncc2 [real,private/optional/default=impossible]
  • pscalar/bump (nx) [real,private]
  • pscalar/bunit (*,*,*,*) [real,private/allocatable]
  • pscalar/cc2m [real,public/optional/default=0.0]
  • pscalar/cc_const [real,private/optional/default=1.0]
  • pscalar/cc_left [real,private/optional/default=1.0]
  • pscalar/cc_min [real,private/optional/default=0.0]
  • pscalar/cc_right [real,private/optional/default=0.0]
  • pscalar/cc_xyaver (mz,npscalar) [real,private]
  • pscalar/diffcc_shock [real,private/optional/default=0.0]
  • pscalar/epsilon_cc [real,private/optional/default=0.0]
  • pscalar/epsilon_lncc [real,private/optional/default=impossible]
  • pscalar/gcc2m [real,public/optional/default=0.0]
  • pscalar/gradc0 (3) [real,private/optional/default=(/0.0,0.0,0.0/)]
  • pscalar/hhh (*,*,*,*) [real,private/allocatable]
  • pscalar/hoverr [real,private/optional/default=0.05]
  • pscalar/icc_end [integer,private]
  • pscalar/idiag_cc10m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-10} right>$

  • pscalar/idiag_cc1m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-1} right>$

  • pscalar/idiag_cc2m [integer,public/optional/default=0]

    DIAG_DOC: $left< c_1^{-2} right>$

  • pscalar/idiag_cc2mz [integer,private/optional/default=0]
  • pscalar/idiag_cc3m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-3} right>$

  • pscalar/idiag_cc4m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-4} right>$

  • pscalar/idiag_cc5m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-5} right>$

  • pscalar/idiag_cc6m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-6} right>$

  • pscalar/idiag_cc7m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-7} right>$

  • pscalar/idiag_cc8m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-8} right>$

  • pscalar/idiag_cc9m [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1^{-9} right>$

  • pscalar/idiag_ccglnrm [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1 partial_z logrho right>$

  • pscalar/idiag_ccm [integer,private/optional/default=0]
  • pscalar/idiag_ccmax [integer,private/optional/default=0]

    DIAG_DOC: $max[ c_1 ]$

  • pscalar/idiag_ccmin [integer,private/optional/default=0]

    DIAG_DOC: $min[ c_1 ]$

  • pscalar/idiag_ccmx [integer,private/optional/default=0]
  • pscalar/idiag_ccmxy [integer,private/optional/default=0]
  • pscalar/idiag_ccmxz [integer,private/optional/default=0]
  • pscalar/idiag_ccmy [integer,private/optional/default=0]
  • pscalar/idiag_ccmz [integer,private/optional/default=0]
  • pscalar/idiag_ccrms [integer,private/optional/default=0]

    DIAG_DOC: $sqrt{left< c_1^2 right>}$

  • pscalar/idiag_ccugum [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1 vec{u} cdot grad u_z right>$

  • pscalar/idiag_cluz_uzlcm [integer,private/optional/default=0]
  • pscalar/idiag_crmsm [integer,private/optional/default=0]

    DIAG_DOC: $sqrt{left< rho c_1^2 right>}$

  • pscalar/idiag_cugccm [integer,private/optional/default=0]

    DIAG_DOC: $left< c_1 vec{u} cdot grad c_1 right>$

  • pscalar/idiag_cz2m [integer,private/optional/default=0]

    DIAG_DOC: $left< rho c_1 z^2 right>$

  • pscalar/idiag_cz4m [integer,private/optional/default=0]

    DIAG_DOC: $left< rho c_1 z^4 right>$

  • pscalar/idiag_gcc10m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{10} right>$

  • pscalar/idiag_gcc1m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right| right>$

  • pscalar/idiag_gcc2m [integer,public/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{2} right>$

  • pscalar/idiag_gcc3m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{3} right>$

  • pscalar/idiag_gcc4m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{4} right>$

  • pscalar/idiag_gcc5m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{5} right>$

  • pscalar/idiag_gcc6m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{6} right>$

  • pscalar/idiag_gcc7m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{7} right>$

  • pscalar/idiag_gcc8m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{8} right>$

  • pscalar/idiag_gcc9m [integer,private/optional/default=0]

    DIAG_DOC: $left< left|grad c_1 right|^{9} right>$

  • pscalar/idiag_gcguzm [integer,private/optional/default=0]
  • pscalar/idiag_mcct [integer,private/optional/default=0]
  • pscalar/idiag_mrclncm [integer,private/optional/default=0]

    DIAG_DOC: $left< rho c_1 log(c_1) right>$

  • pscalar/idiag_qpsclm [integer,private/optional/default=0]
  • pscalar/idiag_qrhoccm [integer,private/optional/default=0]
  • pscalar/idiag_rhoc2m [integer,private/optional/default=0]

    DIAG_DOC: $left< rho c_2 right>$

  • pscalar/idiag_rhoc3m [integer,private/optional/default=0]

    DIAG_DOC: $left< rho c_3 right>$

  • pscalar/idiag_rhoccm [integer,public/optional/default=0]

    DIAG_DOC: $left< rho c_1 right>$

  • pscalar/idiag_rhoccmax [integer,private/optional/default=0]

    DIAG_DOC: $max[ rho c_1 ]$

  • pscalar/idiag_ucm [integer,private/optional/default=0]

    DIAG_DOC: $left< u_z c_1 right>$ (with an extra factor of $2 cos(z)$ if lgradC_profile=T)

  • pscalar/idiag_uudcm [integer,private/optional/default=0]

    DIAG_DOC: $left< u_z vec{u} cdot grad c_1 right>$

  • pscalar/idiag_uxcm [integer,private/optional/default=0]

    DIAG_DOC: $left< u_x c_1 right>$

  • pscalar/idiag_uxcmz [integer,private/optional/default=0]
  • pscalar/idiag_uycm [integer,private/optional/default=0]

    DIAG_DOC: $left< u_y c_1 right>$

  • pscalar/idiag_uycmz [integer,private/optional/default=0]
  • pscalar/idiag_uzcm [integer,private/optional/default=0]

    DIAG_DOC: $left< u_z c_1 right>$

  • pscalar/idiag_uzcmz [integer,private/optional/default=0]
  • pscalar/initcc [character,private/optional/default='nothing']
  • pscalar/initcc2 [character,private/optional/default='zero']
  • pscalar/initlncc [character,private/optional/default='impossible']
  • pscalar/initlncc2 [character,private/optional/default='impossible']
  • pscalar/kx_cc [real,private/optional/default=1.0]
  • pscalar/kx_lncc [real,private/optional/default=impossible]
  • pscalar/kxx_cc [real,private/optional/default=0.0]
  • pscalar/ky_cc [real,private/optional/default=1.0]
  • pscalar/ky_lncc [real,private/optional/default=impossible]
  • pscalar/kyy_cc [real,private/optional/default=0.0]
  • pscalar/kz_cc [real,private/optional/default=1.0]
  • pscalar/kz_lncc [real,private/optional/default=impossible]
  • pscalar/kzz_cc [real,private/optional/default=0.0]
  • pscalar/lam_gradc [real,private/optional/default=0.0]
  • pscalar/lambda_cc [real,private/optional/default=0.0]
  • pscalar/lgradc_profile [logical,private/optional/default=.false.]
  • pscalar/ll_sh [integer,private/optional/default=-1]
  • pscalar/llambda_cc [real,private/optional/default=0.0]
  • pscalar/lmean_friction_cc [logical,private/optional/default=.false.]
  • pscalar/lnotpassive [logical,private/optional/default=.false.]
  • pscalar/lpscalar_diff_simple [logical,private/optional/default=.false.]
  • pscalar/lpscalar_per_unitvolume [logical,private/optional/default=.false.]
  • pscalar/lpscalar_per_unitvolume_diff [logical,private/optional/default=.false.]
  • pscalar/lpscalar_sink [logical,private/optional/default=.false.]
  • pscalar/lreactions [logical,private/optional/default=.false.]
  • pscalar/lremove_mean [logical,private/optional/default=.false.]
  • pscalar/lupw_cc [logical,private/optional/default=.false.]
  • pscalar/mean_friction_cc [private]
  • pscalar/mm_sh [integer,private/optional/default=-1]
  • pscalar/n_xprof [integer,private/optional/default=0]
  • pscalar/nopscalar [logical,private/optional/default=.false.]
  • pscalar/om_gradc [real,private/optional/default=0.0]
  • pscalar/powerlr [real,private/optional/default=3.0]
  • pscalar/pscalar_diff [real,private/optional/default=0.0]
  • pscalar/pscalar_diff_hyper3 [real,private/optional/default=0.0]
  • pscalar/pscalar_sink [real,private/optional/default=0.0]
  • pscalar/radius_cc [real,private/optional/default=0.0]
  • pscalar/radius_lncc [real,private/optional/default=impossible]
  • pscalar/reinitialize_cc [logical,private/optional/default=.false.]
  • pscalar/reinitialize_lncc [logical,private/optional/default=.false.]
  • pscalar/rhoccm [real,public/optional/default=0.0]
  • pscalar/rpscalar_sink [real,private/optional/default=0.5]
  • pscalar/scalaracc [real,private/optional/default=0.0]
  • pscalar/soret_diff [real,private/optional/default=0.0]
  • pscalar/spharm (*,*) [real,private/allocatable]
  • pscalar/tensor_diff [private]
  • pscalar/tensor_pscalar_diff [real,private/optional/default=0.0]
  • pscalar/widthcc [real,private/optional/default=0.5]
  • pscalar/widthlncc [real,private/optional/default=impossible]
  • pscalar/xjump_mid [real,private/optional/default=0.0]
  • pscalar/yjump_mid [real,private/optional/default=0.0]
  • pscalar/zjump_mid [real,private/optional/default=0.0]
  • pscalar/zoverh [real,private/optional/default=1.0]

Subroutines and functions

subroutine  pscalar/register_pscalar()

Initialise variables which should know that we solve for passive scalar: icc; increase nvar accordingly

6-jul-02/axel: coded

Use :

farraymanager

Called from:

register_modules()

Call to:

svn_id(), init_lncc(), fatal_error(), warning(), ylm_other(), ylm(), hatwave(), hat(), gaussian(), parabola(), wave(), linprof(), wave_uu(), cosx_cosy_cosz(), triquad(), htube2(), jump(), initial_condition_lncc(), dot2_mn(), g2ij(), del6(), grad5(), dot_mn(), identify_bcs(), cond_spec_nucl_lagr(), special_calc_pscalar(), calc_diagnostics_pscalar(), integrate_mn_name(), max_mn_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), save_name()

subroutine  pscalar/initialize_pscalar(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.

24-nov-02/tony: coded 20-may-03/axel: reinitialize_cc added

17/MRadded bump for lpscalar_sink defined by spherical harmonics,

specified by ll_sh, mm_sh >=0.

Parameters:

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

Use :

sub (ylm_other(), ylm()), general (yin2yang_coors())

Called from:

register_modules(), initialize_modules()

Call to:

init_lncc(), fatal_error(), warning(), ylm_other(), ylm(), hatwave(), hat(), gaussian(), parabola(), wave(), linprof(), wave_uu(), cosx_cosy_cosz(), triquad(), htube2(), jump(), initial_condition_lncc(), dot2_mn(), g2ij(), del6(), grad5(), dot_mn(), identify_bcs(), cond_spec_nucl_lagr(), special_calc_pscalar(), calc_diagnostics_pscalar(), integrate_mn_name(), max_mn_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), save_name()

subroutine  pscalar/init_lncc(f)

initialise passive scalar field; called from start.f90

6-jul-2001/axel: coded

27-jun-2017/MR: added initial condition: spherical harmonic in theta,phi,

sinusoidal in r with frequency n_xprof

Parameters:

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

Use :

sub, general (yin2yang_coors()), initcond, initialcondition (initial_condition_lncc())

Called from:

register_pscalar(), initialize_pscalar(), start

Call to:

warning(), hatwave(), hat(), gaussian(), parabola(), wave(), linprof(), wave_uu(), cosx_cosy_cosz(), triquad(), htube2(), jump(), fatal_error(), ylm_other(), ylm(), initial_condition_lncc(), dot2_mn(), g2ij(), del6(), grad5(), dot_mn(), identify_bcs(), cond_spec_nucl_lagr(), special_calc_pscalar(), calc_diagnostics_pscalar(), integrate_mn_name(), max_mn_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), save_name()

subroutine  pscalar/pencil_criteria_pscalar()

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

20-nov-04/anders: coded

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils()

Call to:

dot2_mn(), g2ij(), del6(), grad5(), dot_mn(), identify_bcs(), cond_spec_nucl_lagr(), special_calc_pscalar(), calc_diagnostics_pscalar(), integrate_mn_name(), max_mn_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), warning(), save_name()

subroutine  pscalar/pencil_interdep_pscalar(lpencil_in)

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

20-11-04/anders: coded

Parameters:

lpencil_in (npencils) [logical]

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils()

Call to:

dot2_mn(), g2ij(), del6(), grad5(), dot_mn(), identify_bcs(), cond_spec_nucl_lagr(), special_calc_pscalar(), calc_diagnostics_pscalar(), integrate_mn_name(), max_mn_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), warning(), save_name()

subroutine  pscalar/calc_pencils_pscalar(f, p)

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

20-11-04/anders: coded 24-oct-11/ccyang: generalize to multiple scalars

Parameters:
Use :

sub

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

Call to:

dot2_mn(), g2ij(), del6(), grad5(), dot_mn(), identify_bcs(), cond_spec_nucl_lagr(), special_calc_pscalar(), calc_diagnostics_pscalar(), integrate_mn_name(), max_mn_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), warning(), save_name()

subroutine  pscalar/dlncc_dt(f, df, p)

Passive scalar evolution. Calculate dc/dt=-uu.gcc + pscalar_diff*[del2cc + glnrho.gcc].

20-may-03/axel: coded

Parameters:
Use :

special (special_calc_pscalar()), chemistry (cond_spec_nucl_lagr()), sub

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

Call to:

identify_bcs(), dot_mn(), dot2_mn(), cond_spec_nucl_lagr(), special_calc_pscalar(), calc_diagnostics_pscalar(), integrate_mn_name(), max_mn_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), warning(), save_name()

subroutine  pscalar/calc_diagnostics_pscalar(p)

Diagnostics (only for the first passive scalar)

output for double and triple correlators (assume z-gradient of cc) <u_k u_j d_j c> = <u_k c uu.gradcc>

Parameters:

p [pencil_case,in]

Use :

diagnostics, sub (dot_mn())

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar(), dlncc_dt()

Call to:

integrate_mn_name(), max_mn_name(), dot_mn(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), ysum_mn_name_xz(), remove_mean(), warning(), save_name()

subroutine  pscalar/read_pscalar_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

remove_mean(), warning(), save_name(), dot_mn()

subroutine  pscalar/write_pscalar_init_pars(unit)
Parameters:

unit [integer,in]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars()

Call to:

remove_mean(), warning(), save_name(), dot_mn()

subroutine  pscalar/read_pscalar_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

remove_mean(), warning(), save_name(), dot_mn()

subroutine  pscalar/write_pscalar_run_pars(unit)
Parameters:

unit [integer,in]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars()

Call to:

remove_mean(), warning(), save_name(), dot_mn()

subroutine  pscalar/rprint_pscalar(lreset[, lwrite])

Reads and registers print parameters relevant for passive scalar.

6-jul-02/axel: coded

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics, farraymanager (farray_index_append())

Called from:

register_modules(), initialize_modules(), finalize_modules(), choose_pencils(), rprint_list()

Call to:

remove_mean(), warning(), save_name(), dot_mn()

subroutine  pscalar/get_slices_pscalar(f, slices)

Write slices for animation of pscalar variables.

26-jul-06/tony: coded 31-jan-11/ccyang: generalized to multiple scalars

Parameters:
Use :

slices_methods (assign_slices_vec(), process_slices(), log2d())

Called from:

wvid_prepare(), wvid()

Call to:

remove_mean(), warning(), save_name(), dot_mn()

subroutine  pscalar/pscalar_before_boundary(f)

Removes overall means of passive scalars.

5-dec-11/MR: coded

Parameters:

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

Use :

sub (remove_mean())

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

Call to:

remove_mean(), warning(), save_name(), dot_mn()

subroutine  pscalar/calc_mpscalar()

Calculate mean magnetic field from xy- or z-averages.

14-apr-03/axel: adaped from calc_mfield

Use :

diagnostics

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

Call to:

warning(), save_name(), dot_mn()