pscalar
Module
Description
$Id$
This modules solves the passive scalar advection equation.
** 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(1); cc1(1); lncc; glncc(3); uglncc; del2lncc PENCILS PROVIDED hlncc(3,3)
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
cdata: $Id$general(keep_compiler_quiet()): $Id$messages: $Id$
Variables
- pscalar/amplcc [real,private/optional/default=0.1]
- pscalar/ampllncc [real,private/optional/default=0.1]
- pscalar/ampllncc2 [real,private/optional/default=0.0]
- pscalar/cc2m [real,public/optional/default=0.0]
- pscalar/cc_const [real,private/optional/default=0.0]
- pscalar/cc_min [real,private/optional/default=0.0]
- pscalar/delta_lncc [real,private/optional/default=0]
- pscalar/epsilon_lncc [real,private/optional/default=0.0]
- pscalar/gcc2m [real,public/optional/default=0.0]
- pscalar/gradc0 (3) [real,private/optional/default=(/0.0,0.0,0.0/)]
- pscalar/idiag_cc10m [integer,private/optional/default=0]
- pscalar/idiag_cc1m [integer,private/optional/default=0]
- pscalar/idiag_cc2m [integer,public/optional/default=0]
- pscalar/idiag_cc3m [integer,private/optional/default=0]
- pscalar/idiag_cc4m [integer,private/optional/default=0]
- pscalar/idiag_cc5m [integer,private/optional/default=0]
- pscalar/idiag_cc6m [integer,private/optional/default=0]
- pscalar/idiag_cc7m [integer,private/optional/default=0]
- pscalar/idiag_cc8m [integer,private/optional/default=0]
- pscalar/idiag_cc9m [integer,private/optional/default=0]
- pscalar/idiag_ccglnrm [integer,private/optional/default=0]
- pscalar/idiag_ccmax [integer,private/optional/default=0]
- pscalar/idiag_ccmin [integer,private/optional/default=0]
- pscalar/idiag_ccmx [integer,private/optional/default=0]
- pscalar/idiag_ccmy [integer,private/optional/default=0]
- pscalar/idiag_ccmz [integer,private/optional/default=0]
- pscalar/idiag_crmsm [integer,private/optional/default=0]
- pscalar/idiag_cz2m [integer,private/optional/default=0]
- pscalar/idiag_cz4m [integer,private/optional/default=0]
- pscalar/idiag_gcc10m [integer,private/optional/default=0]
- pscalar/idiag_gcc1m [integer,private/optional/default=0]
- pscalar/idiag_gcc2m [integer,public/optional/default=0]
- pscalar/idiag_gcc3m [integer,private/optional/default=0]
- pscalar/idiag_gcc4m [integer,private/optional/default=0]
- pscalar/idiag_gcc5m [integer,private/optional/default=0]
- pscalar/idiag_gcc6m [integer,private/optional/default=0]
- pscalar/idiag_gcc7m [integer,private/optional/default=0]
- pscalar/idiag_gcc8m [integer,private/optional/default=0]
- pscalar/idiag_gcc9m [integer,private/optional/default=0]
- pscalar/idiag_lnccm [integer,private/optional/default=0]
- pscalar/idiag_lnccmx [integer,private/optional/default=0]
- pscalar/idiag_lnccmy [integer,private/optional/default=0]
- pscalar/idiag_lnccmz [integer,private/optional/default=0]
- pscalar/idiag_mcct [integer,private/optional/default=0]
- pscalar/idiag_rhoccm [integer,public/optional/default=0]
- pscalar/idiag_ucm [integer,private/optional/default=0]
- pscalar/idiag_uudcm [integer,private/optional/default=0]
- pscalar/initlncc [character,private/optional/default='zero']
- pscalar/initlncc2 [character,private/optional/default='zero']
- pscalar/kx_lncc [real,private/optional/default=1.0]
- pscalar/ky_lncc [real,private/optional/default=1.0]
- pscalar/kz_lncc [real,private/optional/default=1.0]
- pscalar/ldustdrift [logical,private/optional/default=.false.]
- pscalar/lncc_min [real,private]
- pscalar/lupw_lncc [logical,private/optional/default=.false.]
- pscalar/nopscalar [logical,private/optional/default=.false.]
- pscalar/pscalar_diff [real,private/optional/default=0.0]
- pscalar/pscalar_diff_shock [real,private/optional/default=0.0]
- pscalar/radius_lncc [real,private/optional/default=0.0]
- pscalar/reinitialize_lncc [logical,private/optional/default=.false.]
- pscalar/rhoccm [real,public/optional/default=0.0]
- pscalar/tensor_diff [private]
- pscalar/tensor_pscalar_diff [real,private/optional/default=0.0]
- pscalar/widthlncc [real,private/optional/default=0.5]
- pscalar/widthlncc1 [real,private/optional/default=1.0]
- pscalar/widthlncc2 [real,private/optional/default=1.5]
Subroutines and functions
- subroutine pscalar/register_pscalar()
Initialise variables which should know that we solve for passive scalar: ilncc; increase nvar accordingly.
6-jul-02/axel: coded
- Use :
- Call to:
svn_id(),init_lncc(),gaussian(),parabola(),wave(),wave_uu(),htube2(),fatal_error(),initial_condition_lncc(),g2ij(),identify_bcs(),dot_mn(),special_calc_pscalar(),calc_diagnostics_pscalar(),integrate_mn_name(),max_mn_name(),xysum_mn_name_z(),xzsum_mn_name_y(),yzsum_mn_name_x(),information(),save_name()
- subroutine pscalar/initialize_pscalar(f)
Perform any necessary post-parameter read initialization. Dummy routine
24-nov-02/tony: coded
- Parameters:
f (,,*,*) [real,contiguous]
- Use :
- Call to:
init_lncc(),gaussian(),parabola(),wave(),wave_uu(),htube2(),fatal_error(),initial_condition_lncc(),g2ij(),identify_bcs(),dot_mn(),special_calc_pscalar(),calc_diagnostics_pscalar(),integrate_mn_name(),max_mn_name(),xysum_mn_name_z(),xzsum_mn_name_y(),yzsum_mn_name_x(),information(),save_name()
- subroutine pscalar/init_lncc(f)
Initialise passive scalar field; called from start.f90.
6-jul-2001/axel: coded
- Parameters:
f (,,*,*) [real,contiguous]
- Use :
- Call to:
gaussian(),parabola(),wave(),wave_uu(),htube2(),fatal_error(),initial_condition_lncc(),g2ij(),identify_bcs(),dot_mn(),special_calc_pscalar(),calc_diagnostics_pscalar(),integrate_mn_name(),max_mn_name(),xysum_mn_name_z(),xzsum_mn_name_y(),yzsum_mn_name_x(),information(),save_name()
- subroutine pscalar/pencil_criteria_pscalar()
All pencils that the Pscalar module depends on are specified here.
20-11-04/anders: coded
- 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]
- Call to:
g2ij(),identify_bcs(),dot_mn(),special_calc_pscalar(),calc_diagnostics_pscalar(),integrate_mn_name(),max_mn_name(),xysum_mn_name_z(),xzsum_mn_name_y(),yzsum_mn_name_x(),information(),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
- Parameters:
f (,,*,*) [real,in,contiguous]
p [pencil_case,inout]
- Use :
- Call to:
g2ij(),identify_bcs(),dot_mn(),special_calc_pscalar(),calc_diagnostics_pscalar(),integrate_mn_name(),max_mn_name(),xysum_mn_name_z(),xzsum_mn_name_y(),yzsum_mn_name_x(),information(),save_name()
- subroutine pscalar/dlncc_dt(f, df, p)
Passive scalar evolution.
Calculate dc/dt=-uu.glncc + pscaler_diff*[del2lncc + (glncc+glnrho).glncc]
6-jul-02/axel: coded
- Parameters:
f (,,*,*) [real,in,contiguous]
df (,,*,*) [real,inout,contiguous]
p [pencil_case]
- Use :
- Call to:
identify_bcs(),dot_mn(),special_calc_pscalar(),calc_diagnostics_pscalar(),integrate_mn_name(),max_mn_name(),xysum_mn_name_z(),xzsum_mn_name_y(),yzsum_mn_name_x(),information(),save_name()
- subroutine pscalar/calc_diagnostics_pscalar(p)
- Parameters:
p [pencil_case]
- Use :
- Call to:
integrate_mn_name(),max_mn_name(),xysum_mn_name_z(),xzsum_mn_name_y(),yzsum_mn_name_x(),information(),save_name(),dot_mn()
- subroutine pscalar/read_pscalar_init_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine pscalar/write_pscalar_init_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine pscalar/read_pscalar_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine pscalar/write_pscalar_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- 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 :
- Call to:
- subroutine pscalar/get_slices_pscalar(f, slices)
Write slices for animation of pscalar variables.
26-jul-06/tony: coded
- Parameters:
f (,,*,*) [real,contiguous]
slices [slice_data]
- Use :
slices_methods(assign_slices_scal(),process_slices(),exp2d())- Call to:
- subroutine pscalar/pscalar_before_boundary(f)
Dummy.
- Parameters:
f (,,*,*) [real,in,contiguous]
- Call to:
- subroutine pscalar/calc_mpscalar()
calculate mean magnetic field from xy- or z-averages
14-apr-03/axel: adaped from calc_mfield
- Use :
- Call to: