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 | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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. |
Returns the terms this melt formulation contributes to the salt equation, after they have been solved for using solve_for_melt.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_melt_relationship), | intent(in) | :: | this |
The value of whatever property is being returned.
Returns the terms this melt formulation contributes to the heat equation, after they have been solved for using solve_for_melt.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_melt_relationship), | intent(in) | :: | this |
The value of whatever property is being returned.
Returns the melt rate calculated using this formulation, after it has been solved for using solve_for_melt.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_melt_relationship), | intent(in) | :: | this |
The value of whatever property is being returned.
Whether this formulation of melting contributes any terms to a plume's heat equation.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_melt_relationship), | intent(in) | :: | this |
Whether this formulation of melting contributes terms to the heat or salinity equations.
Whether this formulation of melting contributes any terms to a plume's salinity equation.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_melt_relationship), | intent(in) | :: | this |
Whether this formulation of melting contributes terms to the heat or salinity equations.
type, abstract, public :: abstract_melt_relationship
!* Author: Christopher MacMackin
! Date: October 2016
!
! An abstract data type for calculating melting of an ice shelf into
! a vertically integrated [[plume(type)]]. The melt rate, as well as
! effect on termperature and salinity, are calculated by calling
! [[abstract_melt_relationship(type):solve_for_melt]] and then accessed
! using [[abstract_melt_relationship(type):melt_rate]],
! [[abstract_melt_relationship(type):heat_equation_terms]],
! [[abstract_melt_relationship(type):salt_equation_terms]].
!
contains
procedure(solve), deferred :: solve_for_melt
procedure(get_scalar), deferred :: salt_equation_terms
!! Returns the terms this melt formulation contributes to the
!! salt equation, after they have been solved for using
!! [[abstract_melt_relationship(type):solve_for_melt]].
procedure(get_scalar), deferred :: heat_equation_terms
!! Returns the terms this melt formulation contributes to the
!! heat equation, after they have been solved for using
!! [[abstract_melt_relationship(type):solve_for_melt]].
procedure(get_scalar), deferred :: melt_rate
!! Returns the melt rate calculated using this formulation,
!! after it has been solved for using
!! [[abstract_melt_relationship(type):solve_for_melt]].
procedure(has_terms), deferred :: has_heat_terms
!! Whether this formulation of melting contributes any terms to
!! a plume's heat equation.
procedure(has_terms), deferred :: has_salt_terms
!! Whether this formulation of melting contributes any terms to
!! a plume's salinity equation.
end type abstract_melt_relationship