cosmicray_nolog
Module
Description
$Id$
This modules solves the cosmic ray energy density equation. It follows the description of Hanasz & Lesch (2002,2003) as used in their ZEUS 3D implementation.
** 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 :: lcosmicray = .true.
MVAR CONTRIBUTION 1 MAUX CONTRIBUTION 0
PENCILS PROVIDED ecr; gecr(3); ugecr; bgecr; bglnrho
Quick access
- Variables:
ampl_qcr,ampl_qcr2,amplecr,amplecr2,blimiter_cr,cosmicray_diff,ecr_const,ecr_floor,ecr_floor_log,ecr_min,epsilon_ecr,gammacr,gammacr1,idiag_ecrdivum,idiag_ecrm,idiag_ecrmax,idiag_ecrmin,idiag_ecrmz,idiag_ecrph1mz,idiag_ecrph2mz,idiag_ecrph3mz,idiag_ecrpt,idiag_kmax,initecr,initecr2,jcr_param,kx_ecr,ky_ecr,kz_ecr,lalfven_advect,lcheck_negative_ecr,limiter_cr,lnegl,lupw_ecr,luse_diff_constants,lvariable_tensor_diff,radius_ecr,simplified_cosmicray_tensor,widthecr,x_pos_cr,x_pos_cr2,y_pos_cr,y_pos_cr2,z_pos_cr,z_pos_cr2- Routines:
calc_diagnostics_cosmicray(),calc_pencils_cosmicray(),decr_dt(),get_slices_cosmicray(),impose_ecr_floor(),init_ecr(),initialize_cosmicray(),pencil_criteria_cosmicray(),pencil_interdep_cosmicray(),read_cosmicray_init_pars(),read_cosmicray_run_pars(),register_cosmicray(),rprint_cosmicray(),write_cosmicray_init_pars(),write_cosmicray_run_pars()
Needed modules
cdata: $Id$general(keep_compiler_quiet()): $Id$messages: $Id$
Variables
- cosmicray/ampl_qcr [real,private/optional/default=0.0]
- cosmicray/ampl_qcr2 [real,private/optional/default=0.0]
- cosmicray/amplecr [real,private/optional/default=0.1]
- cosmicray/amplecr2 [real,private/optional/default=0.0]
- cosmicray/blimiter_cr [real,private/optional/default=0.0]
- cosmicray/cosmicray_diff [real,private/optional/default=0.0]
- cosmicray/ecr_const [real,private/optional/default=0.0]
- cosmicray/ecr_floor [real,private/optional/default=-1.0]
- cosmicray/epsilon_ecr [real,private/optional/default=0.0]
- cosmicray/gammacr [real,private/optional/default=1.3333333333333333]
- cosmicray/gammacr1 [real,private]
- cosmicray/idiag_ecrdivum [integer,private/optional/default=0]
- cosmicray/idiag_ecrm [integer,private/optional/default=0]
- cosmicray/idiag_ecrmax [integer,private/optional/default=0]
- cosmicray/idiag_ecrmin [integer,private/optional/default=0]
- cosmicray/idiag_ecrmz [integer,private/optional/default=0]
- cosmicray/idiag_ecrph1mz [integer,private/optional/default=0]
- cosmicray/idiag_ecrph2mz [integer,private/optional/default=0]
- cosmicray/idiag_ecrph3mz [integer,private/optional/default=0]
- cosmicray/idiag_ecrpt [integer,private/optional/default=0]
- cosmicray/idiag_kmax [integer,private/optional/default=0]
- cosmicray/initecr [character,private/optional/default='zero']
- cosmicray/initecr2 [character,private/optional/default='zero']
- cosmicray/k_para [real,private/target/optional/default=0.0]
- cosmicray/k_perp [real,private/target/optional/default=0.0]
- cosmicray/kx_ecr [real,private/optional/default=1.0]
- cosmicray/ky_ecr [real,private/optional/default=1.0]
- cosmicray/kz_ecr [real,private/optional/default=1.0]
- cosmicray/lalfven_advect [logical,private/optional/default=.false.]
- cosmicray/lcheck_negative_ecr [logical,private]
- cosmicray/limiter_cr [real,private/optional/default=1.0]
- cosmicray/lnegl [logical,private/optional/default=.false.]
- cosmicray/lupw_ecr [logical,private/optional/default=.false.]
- cosmicray/luse_diff_constants [logical,private/optional/default=.false.]
- cosmicray/lvariable_tensor_diff [logical,private/optional/default=.false.]
- cosmicray/radius_ecr [real,private/optional/default=1.0]
- cosmicray/simplified_cosmicray_tensor [logical,private/optional/default=.false.]
- cosmicray/tensor_diffusion [private]
- cosmicray/widthecr [real,private/optional/default=0.5]
- cosmicray/x_pos_cr [real,private/optional/default=0.0]
- cosmicray/x_pos_cr2 [real,private/optional/default=0.0]
- cosmicray/y_pos_cr [real,private/optional/default=0.0]
- cosmicray/y_pos_cr2 [real,private/optional/default=0.0]
- cosmicray/z_pos_cr [real,private/optional/default=0.0]
- cosmicray/z_pos_cr2 [real,private/optional/default=0.0]
Subroutines and functions
- subroutine cosmicray/register_cosmicray()
Initialise variables which should know that we solve for active scalar: iecr - the cosmic ray energy density; increase nvar accordingly
09-oct-03/tony: coded
- subroutine cosmicray/initialize_cosmicray(f)
Perform any necessary post-parameter read initialization
- Parameters:
- Call to:
fatal_error(),blob(),gaussian(),parabola(),wave(),wave_uu(),htube2(),initial_condition_ecr(),dot_mn(),identify_bcs(),div(),calc_diagnostics_cosmicray(),max_mn_name(),save_name(),xysum_mn_name_z(),dot2_mn(),multsv_mn(),g2ij(),fatal_error_local()
- subroutine cosmicray/init_ecr(f)
initialise cosmic ray energy density field; called from start.f90
09-oct-03/tony: coded
- Parameters:
- Use :
- Call to:
blob(),gaussian(),parabola(),wave(),wave_uu(),htube2(),fatal_error(),initial_condition_ecr(),dot_mn(),identify_bcs(),div(),calc_diagnostics_cosmicray(),max_mn_name(),save_name(),xysum_mn_name_z(),dot2_mn(),multsv_mn(),g2ij(),fatal_error_local()
- subroutine cosmicray/pencil_criteria_cosmicray()
The current module’s criteria for which pencils are needed
20-11-04/anders: coded
- subroutine cosmicray/pencil_interdep_cosmicray(lpencil_in)
Set all pencils that input pencil array depends on. The most basic pencils should come last (since other pencils chosen here because of dependence may depend on more basic pencils).
20-11-04/anders: coded
- Parameters:
lpencil_in (npencils) [logical]
- Call to:
dot_mn(),identify_bcs(),div(),calc_diagnostics_cosmicray(),max_mn_name(),save_name(),xysum_mn_name_z(),dot2_mn(),multsv_mn(),g2ij(),fatal_error_local()
- subroutine cosmicray/calc_pencils_cosmicray(f, p)
Calculate cosmicray pencils
20-11-04/anders: coded
- Parameters:
- Use :
- Call to:
dot_mn(),identify_bcs(),div(),calc_diagnostics_cosmicray(),max_mn_name(),save_name(),xysum_mn_name_z(),dot2_mn(),multsv_mn(),g2ij(),fatal_error_local()
- subroutine cosmicray/decr_dt(f, df, p)
cosmic ray evolution calculate decr/dt + div(u.ecr - flux) = -pcr*divu = -(gammacr-1)*ecr*divu solve as decr/dt + u.grad(ecr) = -gammacr*ecr*divu + div(flux) add du = … - (1/rho)*grad(pcr) to momentum equation Alternatively, use w
09-oct-03/tony: coded
- Parameters:
- Use :
- Call to:
identify_bcs(),div(),calc_diagnostics_cosmicray(),max_mn_name(),save_name(),xysum_mn_name_z(),dot2_mn(),multsv_mn(),dot_mn(),g2ij(),fatal_error_local()
- subroutine cosmicray/calc_diagnostics_cosmicray(p)
diagnostics
- Parameters:
p [pencil_case]
- Use :
- Call to:
max_mn_name(),save_name(),xysum_mn_name_z(),dot2_mn(),multsv_mn(),dot_mn(),g2ij(),div(),fatal_error_local()
- subroutine cosmicray/read_cosmicray_init_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
dot2_mn(),multsv_mn(),dot_mn(),g2ij(),div(),fatal_error_local()
- subroutine cosmicray/write_cosmicray_init_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
dot2_mn(),multsv_mn(),dot_mn(),g2ij(),div(),fatal_error_local()
- subroutine cosmicray/read_cosmicray_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
dot2_mn(),multsv_mn(),dot_mn(),g2ij(),div(),fatal_error_local()
- subroutine cosmicray/write_cosmicray_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
dot2_mn(),multsv_mn(),dot_mn(),g2ij(),div(),fatal_error_local()
- subroutine cosmicray/rprint_cosmicray(lreset[, lwrite])
reads and registers print parameters relevant for cosmic rays
6-jul-02/axel: coded
- Parameters:
lreset [logical]
lwrite [logical]
- Use :
- Call to:
dot2_mn(),multsv_mn(),dot_mn(),g2ij(),div(),fatal_error_local()
- subroutine cosmicray/get_slices_cosmicray(f, slices)
Write slices for animation of Cosmicray variables.
26-jul-06/tony: coded
- Parameters:
slices [slice_data]
- Use :
- Call to:
dot2_mn(),multsv_mn(),dot_mn(),g2ij(),div(),fatal_error_local()
- subroutine cosmicray/impose_ecr_floor(f)
Impose a minimum cosmic ray energy density by setting all lower values to the minimum value (ecr_floor).
19-may-15/grsarson: adapted from impose_density_floor
- subroutine cosmicray/pushpars2c(p_par)
- Parameters:
p_par (100) [integer]
- Use :
syscalls(copy_addr()),general(string_to_enum())