Parent module governing all equilibrium types and submodules. This module contains all equilibrium types and the initial declarations of the module subroutines. Every equilibrium submodule extends this module, implementing one of the module subroutines declared here. All "main" equilibrium configurations are set in the submodules. The ones that depend on "main" arrays, like radiative cooling, are set here through calls to their respective modules.
All use statements specified here at the main module scope are automatically accessible in every submodule that extends this one.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
procedure, | private, | pointer | :: | set_equilibrium_values | => | null() | pointer for the submodule, initialised to null |
type(density_type), | public | :: | rho_field | type containing all density-related equilibrium variables |
|||
type(temperature_type), | public | :: | T_field | type containing all temperature-related equilibrium variables |
|||
type(bfield_type), | public | :: | B_field | type containing all magnetic field-related equilibrium variables |
|||
type(velocity_type), | public | :: | v_field | type containing all velocity-related equilibrium variables |
|||
type(gravity_type), | public | :: | grav_field | type containing all gravity-related equilibrium variables |
|||
type(resistivity_type), | public | :: | eta_field | type containing all resistivity-related equilibrium variables |
|||
type(cooling_type), | public | :: | rc_field | type containig all radiative cooling-related equilibrium variables |
|||
type(conduction_type), | public | :: | kappa_field | type containing all thermal conduction-related equilibrium variables |
|||
type(hall_type), | public | :: | hall_field | type containing all Hall related variables |
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
interface to the different equilibrium submodules
Initialises the equilibrium types by calling the corresponding subroutine, which allocates all necessary attributes.
Calls the routine to set the equilibrium pointer, then calls the correct submodule. Performs some sanity checks (negative values, NaNs etc.) when the equilibrium is set, then calls additional physics modules if needed.
Selects the submodule based on the specified equilibrium in the parfile. Works on a case-select basis.
Allows overriding geometry and grid-related parameters. Sets default values for the geometry and grid start/end. If this subroutine is used to set geometry/grid values in the submodule it becomes possible to override them through the parfile. Warnings will always be printed if this happens.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character, | intent(in), | optional | :: | default_geometry | default geometry to set |
|
real(kind=dp), | intent(in), | optional | :: | default_x_start | default start of the grid |
|
real(kind=dp), | intent(in), | optional | :: | default_x_end | default end of the grid |
Cleaning routine, deallocates the equilibrium types.