mod_equilibrium Module

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.



Contents


Variables

TypeVisibilityAttributesNameInitial
procedure, private, pointer:: set_equilibrium_values=> null()

pointer for the submodule, initialised to null


Interfaces

interface

interface to the different equilibrium submodules

  • private module module subroutine adiabatic_homo_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine constant_current_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine coronal_flux_tube_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine discrete_alfven_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine flow_driven_instabilities_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine gold_hoyle_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine gravito_acoustic_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine gravito_mhd_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine interchange_modes_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine internal_kink_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine isothermal_atmosphere_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine KHI_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine kh_cd_instability_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine magnetothermal_instability_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine MRI_accretion_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine photospheric_flux_tube_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine resistive_homo_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine resistive_tearing_modes_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine resistive_tearing_modes_flow_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine resonant_absorption_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine rotating_plasma_cyl_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine RTI_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine RTI_KHI_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine RTI_theta_pinch_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine suydam_cluster_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine couette_flow_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine taylor_couette_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine harris_sheet_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine tc_pinch_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

interface

interface to the different equilibrium submodules

  • private module module subroutine user_defined_eq(settings, grid, background, physics)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(inout) :: settings
    type(grid_t), intent(inout) :: grid
    type(background_t), intent(inout) :: background
    type(physics_t), intent(inout) :: physics

Subroutines

public subroutine set_equilibrium(settings, grid, background, physics)

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.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(inout) :: settings
type(grid_t), intent(inout) :: grid
type(background_t), intent(inout) :: background
type(physics_t), intent(inout) :: physics

private subroutine set_equilibrium_pointer(settings)

Selects the submodule based on the specified equilibrium in the parfile. Works on a case-select basis.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings