This module contains definitions of global parameters and variables and some generic functions/subroutines used in AMRVAC.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | B0field | = | .false. |
split magnetic field as background B0 field |
|
| logical, | public | :: | B0fieldAllocCoarse | = | .false. | ||
| double precision, | public | :: | Bdip | = | 0.d0 |
amplitude of background dipolar, quadrupolar, octupolar, user's field |
|
| double precision, | public | :: | Boct | = | 0.d0 | ||
| double precision, | public | :: | Bquad | = | 0.d0 | ||
| double precision, | public | :: | Busr | = | 0.d0 | ||
| integer, | public, | parameter | :: | Forward_Euler | = | 1 | |
| logical, | public | :: | H_correction | = | .false. |
If true, do H-correction to fix the carbuncle problem at grid-aligned shocks |
|
| integer, | public, | parameter | :: | IMEX_222 | = | 12 | |
| integer, | public, | parameter | :: | IMEX_232 | = | 15 | |
| integer, | public, | parameter | :: | IMEX_ARS3 | = | 14 | |
| integer, | public, | parameter | :: | IMEX_CB3a | = | 16 | |
| integer, | public, | parameter | :: | IMEX_Euler | = | 6 | |
| integer, | public, | parameter | :: | IMEX_Midpoint | = | 10 | |
| integer, | public, | parameter | :: | IMEX_SP | = | 7 | |
| integer, | public, | parameter | :: | IMEX_Trapezoidal | = | 11 | |
| double precision, | public | :: | LOS_phi |
direction of the line of sight (LOS) |
|||
| double precision, | public | :: | LOS_theta |
direction of the line of sight (LOS) |
|||
| integer, | public, | parameter | :: | Predictor_Corrector | = | 2 | |
| integer, | public, | parameter | :: | RK2_alf | = | 8 | |
| integer, | public, | parameter | :: | RK3_BT | = | 13 | |
| double precision, | public | :: | R_occultor |
the white light emission below it (unit=Rsun) is not visible |
|||
| double precision, | public | :: | R_opt_thick |
for spherical coordinate, region below it (unit=Rsun) is treated as not transparent |
|||
| logical, | public | :: | SI_unit | = | .false. |
Use SI units (.true.) or use cgs units (.false.) |
|
| double precision, | public | :: | Xload |
Stores the memory and load imbalance, used in printlog |
|||
| double precision, | public | :: | Xmemory |
Stores the memory and load imbalance, used in printlog |
|||
| double precision, | public | :: | a2max_global(ndim) |
global largest a2 for schmid scheme |
|||
| logical, | public | :: | activate_unit_arcsec |
use arcsec as length unit of images/spectra |
|||
| double precision, | public, | allocatable | :: | amr_wavefilter(:) | |||
| logical, | public | :: | any_source_split | = | .false. |
if any normal source term is added in split fasion |
|
| logical, | public | :: | aperiodB(ndim) |
True for dimensions with aperiodic boundaries |
|||
| double precision, | public | :: | ars_gamma |
IMEX_ARS3 parameter ars_gamma |
|||
| logical, | public | :: | autoconvert |
If true, already convert to output format during the run |
|||
| integer, | public | :: | b0i | = | 0 |
background magnetic field location indicator |
|
| character(len=std_len), | public | :: | base_filename |
Base file name for simulation output, which will be followed by a number |
|||
| integer, | public, | parameter | :: | bc_aperiodic | = | 6 | |
| integer, | public, | parameter | :: | bc_asymm | = | 4 | |
| integer, | public, | parameter | :: | bc_character | = | 9 | |
| integer, | public, | parameter | :: | bc_cont | = | 2 | |
| integer, | public, | parameter | :: | bc_data | = | 8 | |
| integer, | public, | parameter | :: | bc_icarus | = | 10 | |
| integer, | public, | parameter | :: | bc_noinflow | = | 7 | |
| integer, | public, | parameter | :: | bc_periodic | = | 5 | |
| integer, | public, | parameter | :: | bc_special | = | 1 |
boundary condition types |
| integer, | public, | parameter | :: | bc_symm | = | 3 | |
| logical, | public | :: | big_image |
big image |
|||
| type(state), | public, | pointer | :: | block |
Block pointer for using one block and its previous state |
||
| integer, | public | :: | block_nx1 |
number of cells for each dimension in grid block excluding ghostcells |
|||
| integer, | public | :: | block_nx2 |
number of cells for each dimension in grid block excluding ghostcells |
|||
| integer, | public | :: | block_nx3 |
number of cells for each dimension in grid block excluding ghostcells |
|||
| double precision, | public | :: | c_norm | = | 1.d0 |
Normalised speed of light |
|
| double precision, | public | :: | cmax_global |
global fastest wave speed needed in fd scheme and glm method |
|||
| logical, | public | :: | coarsenprimitive | = | .false. | ||
| logical, | public | :: | collapse(ndim) |
If collapse(DIM) is true, generate output integrated over DIM |
|||
| integer, | public | :: | collapseLevel |
The level at which to produce line-integrated / collapsed output |
|||
| character(len=std_len), | public | :: | collapse_type | ||||
| integer, | public | :: | collapsenext | ||||
| logical, | public | :: | convert |
If true and restart_from_file is given, convert snapshots to other file formats |
|||
| character(len=std_len), | public | :: | convert_type |
Which format to use when converting Options are: tecplot, tecplotCC, vtu, vtuCC, vtuB, vtuBCC, tecplotmpi, tecplotCCmpi, vtumpi, vtuCCmpi, vtuBmpi, vtuBCCmpi, pvtumpi, pvtuCCmpi, pvtuBmpi, pvtuBCCmpi, tecline, teclinempi, onegrid |
|||
| double precision, | public | :: | courantpar |
The Courant (CFL) number used for the simulation |
|||
| logical, | public | :: | crash | = | .false. |
Save a snapshot before crash a run met unphysical values |
|
| logical, | public | :: | dat_resolution |
resolution of the images |
|||
| double precision, | public, | allocatable | :: | derefine_ratio(:) | |||
| double precision, | public, | dimension(:), allocatable | :: | dg1 |
extent of grid blocks in domain per dimension, in array over levels |
||
| double precision, | public, | dimension(:), allocatable | :: | dg2 |
extent of grid blocks in domain per dimension, in array over levels |
||
| double precision, | public, | dimension(:), allocatable | :: | dg3 |
extent of grid blocks in domain per dimension, in array over levels |
||
| logical, | public | :: | dimsplit | ||||
| integer, | public | :: | direction_slit |
direction of the slit (for dat resolution only) |
|||
| integer, | public | :: | ditregrid |
Reconstruct the AMR grid once every ditregrid iteration(s) |
|||
| integer, | public | :: | ditsave(nfile) |
Repeatedly save output of type N when ditsave(N) time steps have passed |
|||
| integer, | public | :: | domain_nx1 |
number of cells for each dimension in level-one mesh |
|||
| integer, | public | :: | domain_nx2 |
number of cells for each dimension in level-one mesh |
|||
| integer, | public | :: | domain_nx3 |
number of cells for each dimension in level-one mesh |
|||
| double precision, | public | :: | dt | ||||
| double precision, | public | :: | dtdiffpar |
For resistive MHD, the time step is also limited by the diffusion time: \f$ dt < dtdiffpar \times dx^2/eta \f$ |
|||
| double precision, | public | :: | dtmin |
Stop the simulation when the time step becomes smaller than this value |
|||
| double precision, | public | :: | dtpar |
If dtpar is positive, it sets the timestep dt, otherwise courantpar is used to limit the time step based on the Courant condition. |
|||
| double precision, | public | :: | dtsave(nfile) |
Repeatedly save output of type N when dtsave(N) simulation time has passed |
|||
| double precision, | public, | allocatable | :: | dx(:,:) | |||
| double precision, | public, | allocatable | :: | dxfirst(:,:) | |||
| double precision, | public, | allocatable | :: | dxfirst_1mq(:,:) | |||
| double precision, | public | :: | dxlevel(ndim) | ||||
| double precision, | public, | allocatable | :: | dxmid(:,:) | |||
| integer, | public | :: | emax_sxr | ||||
| integer, | public | :: | emin_sxr | ||||
| integer, | public, | parameter | :: | fileanalysis_ | = | 5 |
Constant indicating analysis output (see @ref analysis.md) |
| integer, | public, | parameter | :: | filecollapse_ | = | 4 |
Constant indicating collapsed output |
| integer, | public, | parameter | :: | filelog_ | = | 1 |
Constant indicating log output |
| character(len=std_len), | public | :: | filename_euv |
Base file name for synthetic EUV emission output |
|||
| character(len=std_len), | public | :: | filename_spectrum |
Base file name for synthetic EUV spectrum output |
|||
| character(len=std_len), | public | :: | filename_sxr |
Base file name for synthetic SXR emission output |
|||
| character(len=std_len), | public | :: | filename_whitelight |
Base file name for synthetic white light |
|||
| integer, | public, | parameter | :: | fileout_ | = | 2 |
Constant indicating regular output |
| integer, | public, | parameter | :: | fileslice_ | = | 3 |
Constant indicating slice output |
| logical, | public | :: | final_dt_exit |
Force timeloop exit when final dt < dtmin |
|||
| logical, | public | :: | final_dt_reduction |
If true, allow final dt reduction for matching time_max on output |
|||
| logical, | public | :: | firstprocess |
If true, call initonegrid_usr upon restarting |
|||
| integer, | public, | parameter | :: | fivestep | = | 5 | |
| logical, | public | :: | fix_conserve_global | = | .true. |
Whether to apply flux conservation at refinement boundaries |
|
| logical, | public | :: | flatcd | ||||
| logical, | public | :: | flatsh | ||||
| double precision, | public | :: | flux_ad_min | = | 0.0d0 | ||
| double precision, | public | :: | flux_ad_scale | = | 1.0d0 | ||
| logical, | public | :: | flux_adaptive_diffusion | = | .false. |
Adaptive LLF diffusion (Rempel et al. 2009): phi in [flux_ad_min, 1] per face per variable |
|
| integer, | public, | allocatable | :: | flux_method(:) |
Which flux scheme of spatial discretization to use (per grid level) |
||
| integer, | public, | parameter | :: | fourstep | = | 4 | |
| integer, | public, | parameter | :: | fs_hll | = | 1 |
flux schemes |
| integer, | public, | parameter | :: | fs_hllc | = | 2 | |
| integer, | public, | parameter | :: | fs_tvdlf | = | 5 | |
| character(len=std_len), | public | :: | geometry | = | 'Cartesian' |
coordinate system to build for: 'Cartesian', 'spherical', 'cylindrical', or the logarithmic-radius variants 'logSpherical'/'logCylindrical' (which emit GEOM='spherical'/'cylindrical' plus the LOG_RADIUS flag). Read from &meshlist and turned into the GEOM fypp define by the config system; must be consistent with the set_coordinate_system call in mod_usr. |
|
| character(len=std_len), | public | :: | geometry_name | = | 'default' | ||
| logical, | public | :: | ghost_copy | = | .false. |
whether copy values instead of interpolation in ghost cells of finer blocks |
|
| double precision, | public | :: | global_time |
The global simulation time |
|||
| integer, | public | :: | icomm |
The MPI communicator |
|||
| integer, | public | :: | ierrmpi |
A global MPI error return code |
|||
| double precision, | public | :: | image_rotate |
rotation of image |
|||
| double precision, | public | :: | imex222_lambda |
IMEX-222(lambda) one-parameter family of schemes |
|||
| double precision, | public | :: | imex_a21 | ||||
| double precision, | public | :: | imex_a22 |
IMEX_CB3a extra parameters |
|||
| double precision, | public | :: | imex_a31 | ||||
| double precision, | public | :: | imex_a32 | ||||
| double precision, | public | :: | imex_a33 |
IMEX_CB3a extra parameters |
|||
| double precision, | public | :: | imex_b1 | ||||
| double precision, | public | :: | imex_b2 | ||||
| double precision, | public | :: | imex_b3 | ||||
| double precision, | public | :: | imex_c2 | ||||
| double precision, | public | :: | imex_c3 | ||||
| double precision, | public | :: | imex_ha21 | ||||
| double precision, | public | :: | imex_ha22 | ||||
| double precision, | public | :: | imex_ha32 |
IMEX_CB3a extra parameters |
|||
| integer, | public | :: | imex_switch |
IMEX_232 choice and parameters |
|||
| integer, | public | :: | index_latest_data |
index number of the latest existing data file |
|||
| double precision, | public | :: | instrument_resolution_factor |
times for enhancing spatial resolution for EUV image/spectra |
|||
| logical, | public | :: | internalboundary |
if there is an internal boundary |
|||
| integer, | public | :: | iprob |
problem switch allowing different setups in same usr_mod.t |
|||
| integer, | public | :: | isaveit(nfile) | ||||
| integer, | public | :: | isavet(nfile) | ||||
| integer, | public | :: | istep |
Index of the sub-step in a multi-step time integrator |
|||
| integer, | public | :: | it |
Number of time steps taken |
|||
| integer, | public | :: | it_init |
initial iteration count |
|||
| integer, | public | :: | it_max |
Stop the simulation after this many time steps have been taken |
|||
| integer, | public | :: | itfixgrid |
Fix the AMR grid after this many time steps |
|||
| integer, | public | :: | itsave(nsavehi,nfile) |
Save output of type N on iterations itsave(:, N) |
|||
| integer, | public | :: | itsavelast(nfile) | ||||
| integer, | public | :: | ixGextmax1 |
Index range over which the cell metrics (dvolume, ds) are known. This is the ghosted block range ixG, plus one extra layer on either side when the number of ghost cells is odd (or the grid is staggered), because ghost cell prolongation then needs volumes and dx-intervals one cell beyond it. |
|||
| integer, | public | :: | ixGextmax2 |
Index range over which the cell metrics (dvolume, ds) are known. This is the ghosted block range ixG, plus one extra layer on either side when the number of ghost cells is odd (or the grid is staggered), because ghost cell prolongation then needs volumes and dx-intervals one cell beyond it. |
|||
| integer, | public | :: | ixGextmax3 |
Index range over which the cell metrics (dvolume, ds) are known. This is the ghosted block range ixG, plus one extra layer on either side when the number of ghost cells is odd (or the grid is staggered), because ghost cell prolongation then needs volumes and dx-intervals one cell beyond it. |
|||
| integer, | public | :: | ixGextmin1 |
Index range over which the cell metrics (dvolume, ds) are known. This is the ghosted block range ixG, plus one extra layer on either side when the number of ghost cells is odd (or the grid is staggered), because ghost cell prolongation then needs volumes and dx-intervals one cell beyond it. |
|||
| integer, | public | :: | ixGextmin2 |
Index range over which the cell metrics (dvolume, ds) are known. This is the ghosted block range ixG, plus one extra layer on either side when the number of ghost cells is odd (or the grid is staggered), because ghost cell prolongation then needs volumes and dx-intervals one cell beyond it. |
|||
| integer, | public | :: | ixGextmin3 |
Index range over which the cell metrics (dvolume, ds) are known. This is the ghosted block range ixG, plus one extra layer on either side when the number of ghost cells is odd (or the grid is staggered), because ghost cell prolongation then needs volumes and dx-intervals one cell beyond it. |
|||
| integer, | public | :: | ixGhi1 |
Upper index of grid block arrays |
|||
| integer, | public | :: | ixGhi2 |
Upper index of grid block arrays |
|||
| integer, | public | :: | ixGhi3 |
Upper index of grid block arrays |
|||
| integer, | public, | parameter | :: | ixGlo1 | = | 1 |
Lower index of grid block arrays (always 1) |
| integer, | public, | parameter | :: | ixGlo2 | = | 1 |
Lower index of grid block arrays (always 1) |
| integer, | public, | parameter | :: | ixGlo3 | = | 1 |
Lower index of grid block arrays (always 1) |
| integer, | public | :: | ixGshi1 |
Upper index of stagger grid block arrays |
|||
| integer, | public | :: | ixGshi2 |
Upper index of stagger grid block arrays |
|||
| integer, | public | :: | ixGshi3 |
Upper index of stagger grid block arrays |
|||
| integer, | public, | parameter | :: | ixGslo1 | = | 0 |
Lower index of stagger grid block arrays (always 0) |
| integer, | public, | parameter | :: | ixGslo2 | = | 0 |
Lower index of stagger grid block arrays (always 0) |
| integer, | public, | parameter | :: | ixGslo3 | = | 0 |
Lower index of stagger grid block arrays (always 0) |
| integer, | public | :: | ixMhi1 |
the mesh range of a physical block without ghost cells |
|||
| integer, | public | :: | ixMhi2 |
the mesh range of a physical block without ghost cells |
|||
| integer, | public | :: | ixMhi3 |
the mesh range of a physical block without ghost cells |
|||
| integer, | public | :: | ixMlo1 |
the mesh range of a physical block without ghost cells |
|||
| integer, | public | :: | ixMlo2 |
the mesh range of a physical block without ghost cells |
|||
| integer, | public | :: | ixMlo3 |
the mesh range of a physical block without ghost cells |
|||
| integer, | public | :: | kr(3,3) |
Kronecker delta tensor |
|||
| double precision, | public | :: | length_convert_factor | ||||
| integer, | public | :: | level_io | ||||
| integer, | public | :: | level_io_max | ||||
| integer, | public | :: | level_io_min | ||||
| integer, | public | :: | levmax | ||||
| integer, | public | :: | levmax_sub | ||||
| integer, | public | :: | levmin | ||||
| logical, | public | :: | local_timestep | = | .false. |
each cell has its own timestep or not |
|
| double precision, | public | :: | location_slit |
location of the slit |
|||
| integer, | public | :: | log_fh |
MPI file handle for logfile |
|||
| double precision, | public | :: | log_r0 | = | 0.0d0 |
Offset of the logarithmic radial map, r0 in s = ln(1 + r/r0). Only meaningful in a LOG_RADIUS build. Zero - the default - selects the plain map s = ln(r), which cannot reach r = 0. A positive value moves the singularity of the map to r = -r0, so the mesh is uniform (with width r0*ds) for r << r0 and logarithmic for r >> r0, and r = 0 becomes an ordinary face of the grid at s = 0. |
|
| double precision, | public | :: | log_ra | = | 1.0d0 |
The same map written as r = log_ra*exp(s) + log_rb, which is what device code evaluates where s >= 0 is guaranteed. log_ra = 1, log_rb = 0 for log_r0 = 0, so a plain logarithmic build gets bit-for-bit exp(s). |
|
| double precision, | public | :: | log_rb | = | 0.0d0 |
The same map written as r = log_ra*exp(s) + log_rb, which is what device code evaluates where s >= 0 is guaranteed. log_ra = 1, log_rb = 0 for log_r0 = 0, so a plain logarithmic build gets bit-for-bit exp(s). |
|
| logical, | public, | allocatable | :: | logflag(:) | |||
| logical, | public, | allocatable | :: | loglimit(:) | |||
| integer, | public | :: | lvc(3,3,3) |
Levi-Civita tensor |
|||
| integer, | public | :: | max_blocks | = | 4000 |
The maximum number of grid blocks in a processor |
|
| integer, | public | :: | mype |
The rank of the current MPI task |
|||
| integer, | public | :: | n_saves(1:nfile) |
Number of saved files of each type |
|||
| integer, | public | :: | nbufferx1 |
Number of cells as buffer zone |
|||
| integer, | public | :: | nbufferx2 |
Number of cells as buffer zone |
|||
| integer, | public | :: | nbufferx3 |
Number of cells as buffer zone |
|||
| integer, | public, | parameter | :: | ndim | = | 3 |
Number of spatial dimensions for grid variables |
| integer, | public | :: | ndir | = | ndim |
Number of spatial dimensions (components) for vector variables |
|
| logical, | public | :: | need_global_a2max | = | .false. |
global value for schmid scheme |
|
| logical, | public | :: | need_global_cmax | = | .false. |
need global maximal wave speed |
|
| integer, | public, | parameter | :: | nfile | = | 5 |
Number of output methods |
| integer, | public, | dimension(:), allocatable | :: | ng1 |
number of grid blocks in domain per dimension, in array over levels |
||
| integer, | public, | dimension(:), allocatable | :: | ng2 |
number of grid blocks in domain per dimension, in array over levels |
||
| integer, | public, | dimension(:), allocatable | :: | ng3 |
number of grid blocks in domain per dimension, in array over levels |
||
| integer, | public | :: | nghostcells | = | 2 |
Number of ghost cells surrounding a grid |
|
| integer, | public, | parameter | :: | nlevelshi | = | 20 |
The maximum number of levels in the grid refinement |
| logical, | public | :: | nocartesian |
IO switches for conversion |
|||
| integer, | public, | allocatable | :: | node(:,:) | |||
| integer, | public, | allocatable | :: | node_sub(:,:) | |||
| integer, | public, | parameter | :: | nodehi | = | 3+1 |
grid hierarchy info (level and grid indices) |
| integer, | public | :: | npe |
The number of MPI tasks |
|||
| integer, | public, | parameter | :: | nsavehi | = | 100 |
Maximum number of saves that can be defined by tsave or itsave |
| integer, | public | :: | nstep |
How many sub-steps the time integrator takes |
|||
| integer, | public, | allocatable | :: | nstretchedblocks(:,:) | |||
| integer, | public | :: | nstretchedblocks_baselevel(ndim) | = | 0 | ||
| integer, | public | :: | number_equi_vars | = | 0 | ||
| integer, | public | :: | nwauxio |
Number of auxiliary variables that are only included in output |
|||
| integer, | public, | parameter | :: | onestep | = | 1 | |
| character(len=40), | public, | parameter | :: | output_names(nfile) | = | ['log      ', 'normal   ', 'slice    ', 'collapsed', 'analysis '] |
Names of the output methods |
| character(len=std_len), | public, | allocatable | :: | par_files(:) |
Which par files are used as input |
||
| logical, | public | :: | pass_wall_time |
If true, wall time is up, modify snapshotnext for later overwrite |
|||
| logical, | public | :: | periodB(ndim) |
True for dimensions with periodic boundaries |
|||
| integer, | public | :: | phi_ | = | -1 | ||
| logical, | public, | allocatable | :: | phyboundblock(:) |
True if a block has any physical boundary |
||
| character(len=std_len), | public | :: | phys |
type of physics to build |
|||
| logical, | public | :: | phys_trac | = | .false. |
Use TRAC (Johnston 2019 ApJL, 873, L22) for MHD or 1D HD |
|
| double precision, | public | :: | phys_trac_mask | ||||
| integer, | public | :: | phys_trac_type | = | 1 | ||
| integer, | public, | parameter | :: | pig1_ | = | plevel_+1 | |
| integer, | public, | parameter | :: | pig2_ | = | plevel_+2 | |
| integer, | public, | parameter | :: | pig3_ | = | plevel_+3 | |
| integer, | public, | parameter | :: | plevel_ | = | 1 | |
| logical, | public | :: | poleB(2,ndim) |
Indicates whether there is a pole at a boundary |
|||
| logical, | public | :: | poleB_requested(2,ndim) | = | .false. |
True where the parameter file asked for typeboundary='pole' on a face. Kept separately from poleB because the two are decided independently and at different times - read_par_files expands the 'pole' string into symm/asymm entries and loses it, while set_pole derives poleB from the domain bounds much later - and check_pole_setup has to be able to tell the user when they disagree. |
|
| integer, | public | :: | prolong_limiter | = | 0 |
Limiter used for prolongation to refined grids and ghost cells |
|
| logical, | public | :: | prolongprimitive | = | .false. | ||
| double precision, | public, | allocatable | :: | qstretch(:,:) | |||
| double precision, | public | :: | qstretch_baselevel(ndim) | = | 1.0d0 | ||
| integer, | public | :: | r_ | = | -1 |
Indices for cylindrical coordinates FOR TESTS, negative value when not used: |
|
| logical, | public | :: | record_electric_field | = | .false. |
True for record electric field |
|
| integer, | public | :: | refine_criterion | ||||
| integer, | public | :: | refine_max_level |
Maximal number of AMR levels |
|||
| double precision, | public, | allocatable | :: | refine_threshold(:) |
Error tolerance for refinement decision |
||
| logical, | public | :: | refine_usr | = | .false. |
Specify to use user-defined refinement criterion |
|
| logical, | public | :: | reset_grid |
If true, rebuild the AMR grid upon restarting |
|||
| logical, | public | :: | reset_it |
If true, reset iteration count to 0 |
|||
| logical, | public | :: | reset_time |
If true, reset iteration count and global_time to original values, and start writing snapshots at index 0 |
|||
| character(len=std_len), | public | :: | restart_from_file |
If not 'unavailable', resume from snapshot with this base file name |
|||
| logical, | public | :: | resume_previous_run |
If true, restart a previous run from the latest snapshot |
|||
| double precision, | public | :: | rk3_a21 | ||||
| double precision, | public | :: | rk3_a31 | ||||
| double precision, | public | :: | rk3_a32 | ||||
| double precision, | public | :: | rk3_b1 | ||||
| double precision, | public | :: | rk3_b2 | ||||
| double precision, | public | :: | rk3_b3 | ||||
| double precision, | public | :: | rk3_c2 | ||||
| double precision, | public | :: | rk3_c3 | ||||
| integer, | public | :: | rk3_switch |
RK3 Butcher table |
|||
| integer, | public, | parameter | :: | rk4 | = | 17 | |
| double precision, | public | :: | rk_a21 |
RK2(alfa) method parameters from Butcher tableau |
|||
| double precision, | public | :: | rk_alfa21 | ||||
| double precision, | public | :: | rk_alfa22 | ||||
| double precision, | public | :: | rk_alfa31 | ||||
| double precision, | public | :: | rk_alfa33 | ||||
| double precision, | public | :: | rk_alfa41 | ||||
| double precision, | public | :: | rk_alfa44 | ||||
| double precision, | public | :: | rk_alfa53 | ||||
| double precision, | public | :: | rk_alfa54 | ||||
| double precision, | public | :: | rk_alfa55 | ||||
| double precision, | public | :: | rk_b1 |
RK2(alfa) method parameters from Butcher tableau |
|||
| double precision, | public | :: | rk_b2 |
RK2(alfa) method parameters from Butcher tableau |
|||
| double precision, | public | :: | rk_beta11 | ||||
| double precision, | public | :: | rk_beta22 | ||||
| double precision, | public | :: | rk_beta33 | ||||
| double precision, | public | :: | rk_beta44 | ||||
| double precision, | public | :: | rk_beta54 | ||||
| double precision, | public | :: | rk_beta55 | ||||
| double precision, | public | :: | rk_c2 | ||||
| double precision, | public | :: | rk_c3 | ||||
| double precision, | public | :: | rk_c4 | ||||
| double precision, | public | :: | rk_c5 | ||||
| double precision, | public, | allocatable | :: | rnode(:,:) |
Corner coordinates |
||
| double precision, | public, | allocatable | :: | rnode_sub(:,:) | |||
| integer, | public, | parameter | :: | rnodehi | = | 3*3 |
grid location info (corner coordinates and grid spacing) |
| integer, | public, | parameter | :: | rpdx1_ | = | 2*3+1 | |
| integer, | public, | parameter | :: | rpdx2_ | = | 2*3+2 | |
| integer, | public, | parameter | :: | rpdx3_ | = | 2*3+3 | |
| integer, | public, | parameter | :: | rpxmax0_ | = | 3 | |
| integer, | public, | parameter | :: | rpxmax1_ | = | rpxmax0_+1 | |
| integer, | public, | parameter | :: | rpxmax2_ | = | rpxmax0_+2 | |
| integer, | public, | parameter | :: | rpxmax3_ | = | rpxmax0_+3 | |
| integer, | public, | parameter | :: | rpxmin0_ | = | 0 | |
| integer, | public, | parameter | :: | rpxmin1_ | = | rpxmin0_+1 | |
| integer, | public, | parameter | :: | rpxmin2_ | = | rpxmin0_+2 | |
| integer, | public, | parameter | :: | rpxmin3_ | = | rpxmin0_+3 | |
| logical, | public | :: | save_file(nfile) |
whether or not to save an output file |
|||
| logical, | public | :: | save_physical_boundary |
True for save physical boundary cells in dat files |
|||
| logical, | public | :: | saveprim |
If true, convert from conservative to primitive variables in output |
|||
| integer, | public, | parameter | :: | sdim | = | 1 |
starting dimension for electric field |
| integer, | public | :: | size_block |
MPI type for block including ghost cells and its size |
|||
| integer, | public | :: | size_block_io |
MPI type for IO: block excluding ghost cells |
|||
| integer, | public | :: | size_block_io_stg |
MPI type for IO of staggered variables |
|||
| logical, | public | :: | slab | = | .true. |
Cartesian geometry or not |
|
| logical, | public | :: | slab_uniform | = | .true. |
uniform Cartesian geometry or not (stretched Cartesian) |
|
| integer, | public | :: | slicenext | ||||
| integer, | public | :: | slowsteps |
If > 1, then in the first slowsteps-1 time steps dt is reduced by a factor \f$ 1 - (1- step/slowsteps)^2 \f$ |
|||
| integer, | public | :: | snapshotini |
Resume from the snapshot with this index |
|||
| integer, | public | :: | snapshotnext | ||||
| logical, | public | :: | source_split_usr |
Use split or unsplit way to add user's source terms, default: unsplit |
|||
| logical, | public | :: | specialboundary | = | .false. |
signal to the precompiler that we need special boundaries: |
|
| double precision, | public | :: | spectrum_window_max |
spectral window |
|||
| double precision, | public | :: | spectrum_window_min |
spectral window |
|||
| integer, | public | :: | spectrum_wl |
wave length for spectrum |
|||
| integer, | public, | parameter | :: | ssprk2 | = | 9 | |
| integer, | public, | parameter | :: | ssprk3 | = | 3 | |
| integer, | public, | parameter | :: | ssprk4 | = | 4 | |
| integer, | public, | parameter | :: | ssprk5 | = | 5 | |
| integer, | public | :: | ssprk_order |
SSPRK choice of methods (both threestep and fourstep, Shu-Osher 2N* implementation) also fivestep SSPRK54 |
|||
| logical, | public | :: | stagger_grid | = | .false. |
True for using stagger grid |
|
| integer, | public, | parameter | :: | stretch_none | = | 0 |
No stretching |
| integer, | public, | parameter | :: | stretch_symm | = | 2 |
Symmetric stretching (unused) |
| integer, | public | :: | stretch_type(ndim) | = | stretch_none | ||
| logical, | public | :: | stretch_uncentered | = | .false. | ||
| integer, | public, | parameter | :: | stretch_uni | = | 1 |
Unidirectional stretching (unused) |
| logical, | public | :: | stretched_dim(ndim) | = | .false. | ||
| integer, | public | :: | t_integrator | = | 0 |
time integrator method |
|
| integer, | public | :: | t_stepper | = | 0 |
time stepper type |
|
| double precision, | public | :: | tfixgrid |
Fix the AMR grid after this time |
|||
| integer, | public, | parameter | :: | threestep | = | 3 | |
| logical, | public | :: | time_advance | ||||
| double precision, | public | :: | time_bc |
accumulated wall-clock time spent on boundary conditions |
|||
| double precision, | public | :: | time_between_print |
to monitor timeintegration loop at given wall-clock time intervals |
|||
| double precision, | public | :: | time_convert_factor |
Conversion factor for time unit |
|||
| double precision, | public | :: | time_init |
Start time for the simulation |
|||
| double precision, | public | :: | time_max |
End time for the simulation |
|||
| double precision, | public | :: | tsave(nsavehi,nfile) |
Save output of type N on times tsave(:, N) |
|||
| double precision, | public | :: | tsavelast(nfile) | ||||
| double precision, | public | :: | tsavestart(nfile) |
Start of read out (not counting specified read outs) |
|||
| integer, | public, | parameter | :: | twostep | = | 2 | |
| integer, | public | :: | type_block |
MPI type for block including ghost cells and its size |
|||
| integer, | public | :: | type_block_io |
MPI type for IO: block excluding ghost cells |
|||
| integer, | public | :: | type_block_io_stg |
MPI type for IO of staggered variables |
|||
| integer, | public | :: | type_block_wc_io |
MPI type for IO: cell corner (wc) or cell center (wcc) variables |
|||
| integer, | public | :: | type_block_wcc_io |
MPI type for IO: cell corner (wc) or cell center (wcc) variables |
|||
| integer, | public | :: | type_block_xc_io |
MPI type for IO: cell corner (xc) or cell center (xcc) coordinates |
|||
| integer, | public | :: | type_block_xcc_io |
MPI type for IO: cell corner (xc) or cell center (xcc) coordinates |
|||
| integer, | public | :: | type_coarse_block |
MPI type for block coarsened by 2, and for its children blocks |
|||
| integer, | public | :: | type_coarse_block_stg(3,2,2,2) |
MPI type for staggered block coarsened by 2, and for its children blocks |
|||
| integer, | public | :: | type_courant | = | 1 |
How to compute the CFL-limited time step |
|
| integer, | public | :: | type_endian | ||||
| integer, | public, | allocatable | :: | type_gradient_limiter(:) |
Type of slope limiter used for computing gradients or divergences, when typegrad or typediv are set to 'limited' |
||
| integer, | public, | allocatable | :: | type_limiter(:) |
Type of slope limiter used for reconstructing variables on cell edges |
||
| integer, | public, | parameter | :: | type_maxsum | = | 1 |
integer switchers for type courant |
| integer, | public, | parameter | :: | type_minimum | = | 3 | |
| integer, | public | :: | type_sub_block(2,2,2) |
MPI type for block coarsened by 2, and for its children blocks |
|||
| integer, | public | :: | type_sub_block_stg(3,2,2,2) |
MPI type for staggered block coarsened by 2, and for its children blocks |
|||
| integer, | public, | parameter | :: | type_summax | = | 2 | |
| integer, | public, | allocatable | :: | typeboundary(:,:) |
Array indicating the type of boundary condition per variable and per physical boundary |
||
| character(len=std_len), | public | :: | typedimsplit | ||||
| character(len=std_len), | public | :: | typediv | ||||
| character(len=std_len), | public | :: | typefilelog |
Which type of log to write: 'normal', 'special', 'regression_test' |
|||
| character(len=std_len), | public | :: | typegrad | ||||
| character(len=std_len), | public | :: | typepoly | ||||
| character(len=*), | public, | parameter | :: | undefined | = | 'undefined' | |
| double precision, | public | :: | unit_charge | = | 1.d0 |
Physical scaling factor for charge |
|
| double precision, | public | :: | unit_density | = | 1.d0 |
Physical scaling factor for density |
|
| double precision, | public | :: | unit_length | = | 1.d0 |
Physical scaling factor for length |
|
| double precision, | public | :: | unit_magneticfield | = | 1.d0 |
Physical scaling factor for magnetic field |
|
| double precision, | public | :: | unit_mass | = | 1.d0 |
Physical scaling factor for mass |
|
| double precision, | public | :: | unit_numberdensity | = | 1.d0 |
Physical scaling factor for number density |
|
| double precision, | public | :: | unit_opacity | = | 1.d0 |
Physical scaling factor for Opacity |
|
| double precision, | public | :: | unit_pressure | = | 1.d0 |
Physical scaling factor for pressure |
|
| double precision, | public | :: | unit_radflux | = | 1.d0 |
Physical scaling factor for radiation flux |
|
| double precision, | public | :: | unit_temperature | = | 1.d0 |
Physical scaling factor for temperature |
|
| double precision, | public | :: | unit_time | = | 1.d0 |
Physical scaling factor for time |
|
| double precision, | public | :: | unit_velocity | = | 1.d0 |
Physical scaling factor for velocity |
|
| integer, | public, | parameter | :: | unitanalysis | = | 14 | |
| integer, | public, | parameter | :: | unitcollapse | = | 13 | |
| integer, | public, | parameter | :: | unitconvert | = | 10 | |
| integer, | public, | parameter | :: | uniterr | = | 6 |
Unit for error messages |
| integer, | public, | parameter | :: | unitpar | = | 9 |
file handle for IO |
| integer, | public, | parameter | :: | unitslice | = | 11 | |
| integer, | public, | parameter | :: | unitsnapshot | = | 12 | |
| integer, | public, | parameter | :: | unitstdin | = | 5 |
Unit for standard input |
| integer, | public, | parameter | :: | unitterm | = | 6 |
Unit for standard output |
| logical, | public | :: | use_imex_scheme |
whether IMEX in use or not |
|||
| logical, | public | :: | use_multigrid | = | .false. |
Use multigrid (only available in 2D and 3D) |
|
| logical, | public | :: | use_particles | = | .false. |
Use particles module or not |
|
| character(len=std_len), | public | :: | usr_filename |
User parameter file |
|||
| double precision, | public, | allocatable | :: | w_convert_factor(:) |
Conversion factors the primitive variables |
||
| double precision, | public, | allocatable | :: | w_refine_weight(:) |
Weights of variables used to calculate error for mesh refinement |
||
| logical, | public, | allocatable | :: | w_write(:) | |||
| double precision, | public | :: | wall_time_max |
Ending wall time (in hours) for the simulation |
|||
| integer, | public | :: | wavelength |
wavelength for output |
|||
| character(len=std_len), | public | :: | whitelight_instrument |
white light observation instrument |
|||
| logical, | public, | allocatable | :: | writelevel(:) | |||
| double precision, | public | :: | writespshift(ndim,2) | ||||
| double precision, | public | :: | x_origin(1:3) |
where the is the origin (X=0,Y=0) of image |
|||
| double precision, | public | :: | xprobmax1 |
minimum and maximum domain boundaries for each dimension |
|||
| double precision, | public | :: | xprobmax2 |
minimum and maximum domain boundaries for each dimension |
|||
| double precision, | public | :: | xprobmax3 |
minimum and maximum domain boundaries for each dimension |
|||
| double precision, | public | :: | xprobmin1 |
minimum and maximum domain boundaries for each dimension |
|||
| double precision, | public | :: | xprobmin2 |
minimum and maximum domain boundaries for each dimension |
|||
| double precision, | public | :: | xprobmin3 |
minimum and maximum domain boundaries for each dimension |
|||
| double precision, | public | :: | xstretch1 | = | 0.0d0 | ||
| double precision, | public | :: | xstretch2 | = | 0.0d0 | ||
| double precision, | public | :: | xstretch3 | = | 0.0d0 | ||
| integer, | public | :: | z_ | = | -1 |
Cross product of two vectors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | ixImin1 | |||
| integer, | intent(in) | :: | ixImin2 | |||
| integer, | intent(in) | :: | ixImin3 | |||
| integer, | intent(in) | :: | ixImax1 | |||
| integer, | intent(in) | :: | ixImax2 | |||
| integer, | intent(in) | :: | ixImax3 | |||
| integer, | intent(in) | :: | ixOmin1 | |||
| integer, | intent(in) | :: | ixOmin2 | |||
| integer, | intent(in) | :: | ixOmin3 | |||
| integer, | intent(in) | :: | ixOmax1 | |||
| integer, | intent(in) | :: | ixOmax2 | |||
| integer, | intent(in) | :: | ixOmax3 | |||
| double precision, | intent(in) | :: | a(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,3) | |||
| double precision, | intent(in) | :: | b(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,3) | |||
| double precision, | intent(out) | :: | axb(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,3) |