melt_relationship_mod Module

Provides an abstract data type to model melting of an ice shelf into a vertically integrated plume.


Uses

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

Used by

  • module~~melt_relationship_mod~~UsedByGraph module~melt_relationship_mod melt_relationship_mod module~asymmetric_plume_mod asymmetric_plume_mod module~asymmetric_plume_mod->module~melt_relationship_mod module~dallaston2015_melt_mod dallaston2015_melt_mod module~asymmetric_plume_mod->module~dallaston2015_melt_mod module~one_equation_melt_mod one_equation_melt_mod module~one_equation_melt_mod->module~melt_relationship_mod module~ave_one_equation_melt_mod ave_one_equation_melt_mod module~ave_one_equation_melt_mod->module~melt_relationship_mod module~dallaston2015_melt_mod->module~melt_relationship_mod module~static_plume_mod static_plume_mod module~static_plume_mod->module~melt_relationship_mod module~static_plume_mod->module~dallaston2015_melt_mod module~plume_mod plume_mod module~plume_mod->module~melt_relationship_mod module~plume_mod->module~dallaston2015_melt_mod

Contents


Abstract Interfaces

abstract interface

  • private function get_scalar(this) result(property)

    Arguments

    Type IntentOptional AttributesName
    class(abstract_melt_relationship), intent(in) :: this

    Return Value class(scalar_field), pointer

    The value of whatever property is being returned.

abstract interface

  • private pure function has_terms(this)

    Arguments

    Type IntentOptional AttributesName
    class(abstract_melt_relationship), intent(in) :: this

    Return Value logical

    Whether this formulation of melting contributes terms to the heat or salinity equations.

abstract interface

  • private subroutine solve(this, velocity, pressure, temperature, salinity, plume_thickness, time)

    Arguments

    Type IntentOptional AttributesName
    class(abstract_melt_relationship), intent(inout) :: this
    class(vector_field), intent(in) :: velocity

    The velocity field of the plume into which fluid is melting.

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

    The water pressure at the interface where the melting occurs.

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

    The temperature of the plume into which fluid is melting.

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

    The salinity of the plume into which fluid is melting.

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

    The thickness of the plume into which fluid is melting.

    real(kind=r8), intent(in), optional :: time

    The time at which the melting is being solved for. If not present then assumed to be same as previous value passed.


Derived Types

type, public, abstract :: abstract_melt_relationship

An abstract data type for calculating melting of an ice shelf into a vertically integrated plume. The melt rate, as well as effect on termperature and salinity, are calculated by calling solve_for_melt and then accessed using melt_rate, heat_equation_terms, salt_equation_terms.

Type-Bound Procedures

procedure(solve), public :: solve_for_melt
procedure(get_scalar), public :: salt_equation_terms

Returns the terms this melt formulation contributes to the salt equation, after they have been solved for using solve_for_melt.

procedure(get_scalar), public :: heat_equation_terms

Returns the terms this melt formulation contributes to the heat equation, after they have been solved for using solve_for_melt.

procedure(get_scalar), public :: melt_rate

Returns the melt rate calculated using this formulation, after it has been solved for using solve_for_melt.

procedure(has_terms), public :: has_heat_terms

Whether this formulation of melting contributes any terms to a plume's heat equation.

procedure(has_terms), public :: has_salt_terms

Whether this formulation of melting contributes any terms to a plume's salinity equation.