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.

Note

All use statements specified here at the main module scope are automatically accessible in every submodule that extends this one.



Variables

Type Visibility Attributes Name Initial
procedure, private, pointer :: set_equilibrium_values => null()

pointer for the submodule, initialised to null


Interfaces

interface

interface to the different equilibrium submodules

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

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine constant_current_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine coronal_flux_tube_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine discrete_alfven_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine flow_driven_instabilities_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine gold_hoyle_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine gravito_acoustic_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine gravito_mhd_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine interchange_modes_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine internal_kink_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine isothermal_atmosphere_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine KHI_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine kh_cd_instability_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine magnetothermal_instability_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine MRI_accretion_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine photospheric_flux_tube_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine resistive_homo_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine resistive_tearing_modes_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine resistive_tearing_modes_flow_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine resonant_absorption_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine rotating_plasma_cyl_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine RTI_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine RTI_KHI_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine RTI_theta_pinch_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine suydam_cluster_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine couette_flow_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine taylor_couette_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine harris_sheet_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine tc_pinch_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine numerical_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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 subroutine user_defined_eq(settings, grid, background, physics)

    Arguments

    Type IntentOptional Attributes Name
    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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
type(settings_t), intent(in) :: settings