equation_of_state_mod Module

Provides an abstract derived type which can be subtyped in order to implement an equation of state.


Uses

  • module~~equation_of_state_mod~~UsesGraph module~equation_of_state_mod equation_of_state_mod factual_mod factual_mod module~equation_of_state_mod->factual_mod iso_fortran_env iso_fortran_env module~equation_of_state_mod->iso_fortran_env

Used by

  • module~~equation_of_state_mod~~UsedByGraph module~equation_of_state_mod equation_of_state_mod module~ave_linear_eos_mod ave_linear_eos_mod module~ave_linear_eos_mod->module~equation_of_state_mod module~asymmetric_plume_mod asymmetric_plume_mod module~asymmetric_plume_mod->module~equation_of_state_mod module~asymmetric_plume_mod->module~ave_linear_eos_mod module~linear_eos_mod linear_eos_mod module~asymmetric_plume_mod->module~linear_eos_mod module~prescribed_eos_mod prescribed_eos_mod module~prescribed_eos_mod->module~equation_of_state_mod module~linear_eos_mod->module~equation_of_state_mod module~static_plume_mod static_plume_mod module~static_plume_mod->module~equation_of_state_mod module~static_plume_mod->module~linear_eos_mod module~plume_mod plume_mod module~plume_mod->module~equation_of_state_mod module~plume_mod->module~linear_eos_mod

Contents


Abstract Interfaces

abstract interface

  • private function get_property(this, temperature, salinity) result(density)

    Arguments

    Type IntentOptional AttributesName
    class(equation_of_state), intent(in) :: this
    class(scalar_field), intent(in) :: temperature

    A field containing the temperature of the water

    class(scalar_field), intent(in) :: salinity

    A field containing the salinity of the water

    Return Value class(scalar_field), pointer

    A field containing the density of the water

abstract interface

  • private function get_property_dx(this, temperature, d_temperature, salinity, d_salinity, dir) result(d_density)

    Arguments

    Type IntentOptional AttributesName
    class(equation_of_state), intent(in) :: this
    class(scalar_field), intent(in) :: temperature

    A field containing the temperature of the water

    class(scalar_field), intent(in) :: d_temperature

    A field containing the derivative of the temperature of the water, in teh same direction as dir

    class(scalar_field), intent(in) :: salinity

    A field containing the salinity of the water

    class(scalar_field), intent(in) :: d_salinity

    A field containing the derivative of the salinity of the water, in the same direction as dir

    integer, intent(in) :: dir

    The direction in which to take the derivative

    Return Value class(scalar_field), pointer

    A field containing the derivative of the density of the water in direction dir

abstract interface

  • private function get_coef(this, temperature, salinity) result(coef)

    Arguments

    Type IntentOptional AttributesName
    class(equation_of_state), intent(in) :: this
    class(scalar_field), intent(in) :: temperature
    class(scalar_field), intent(in) :: salinity

    Return Value class(scalar_field), allocatable


Derived Types

type, public, abstract :: equation_of_state

An abstract type with a procedure for calculating water density from its temperature and salinity.

Type-Bound Procedures

procedure(get_property), public :: water_density

Returns the water density for the given temperature and salinity.

procedure(get_property_dx), public :: water_density_derivative

Returns the derivative of the water density for the given temperature and salinity.

procedure(get_coef), public :: haline_contraction

Returns a (possibly approximated) haline contraction coefficient.

procedure(get_coef), public :: thermal_contraction

Returns a (possibly approximated) therma contraction coefficient.