Provides an implementation of melt similar to that used by Dallaston, Hewitt, and Wells (2015), prior to their neglecting certain terms on scaling arguments. This implementation has been modified to account for transverse variation in a horizontally-integrated model.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | coef1 | The unitless multiplier on the thermal forcing term, . |
||
real(kind=r8), | intent(in) | :: | coef2 | The unitless multiplier applied to the theram forcing term to get the melt rate, . |
||
real(kind=r8), | intent(in), | optional | :: | fresh_sal | The salinity of fresh water. Defaults to 0. |
|
real(kind=r8), | intent(in), | optional | :: | melt_temp | The melting point of the ice. Defaults to 0. |
|
real(kind=r8), | intent(in), | optional | :: | a_UabsT | The shape coefficient for a horizontally-integrated model. It is defined as where and are the shapes of the variables and in the transverse direction. Defaults to 1. |
The newly created object representing the melt relationship.
A parameterisation of melting into a plume which comes from heavily simplifying the 3 equation model. It can work with horizontally-integrated plume models, taking account of the plume's transverse profile. It is taken from Dallaston, Hewitt, and Wells (2015), prior to the their dropping some terms based on scaling arguments. 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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(scalar_field), | public, | allocatable | :: | forcing_values | Stores the resulting forcing values. |
||
real(kind=r8), | public | :: | coef1 | = | 0.018208_r8 | The unitless multiplier on the thermal forcing term, . |
|
real(kind=r8), | public | :: | coef2 | = | 0.023761_r8 | The unitless multiplier applied to the thermal forcing term to get the melt rate, . |
|
real(kind=r8), | public | :: | sal_forcing | = | 0._r8 | The unitless multiplier applied to the forcing values to get
the salinity forcing. It corresponds to the product of
|
|
real(kind=r8), | public | :: | melt_temp | = | 0._r8 | The melting temperature. While intuitively it makes sense to set this to zero, it can be useful to scale temperature in such a way that it will have a negative value. |
|
real(kind=r8), | public | :: | a_UabsT | = | 1._r8 | The shape coefficient for a horizontally-integrated model. It is defined as where and are the shapes of the variables and in the transverse direction. |
private pure function constructor(coef1, coef2, fresh_sal, melt_temp, a_UabsT) |
procedure, public :: solve_for_melt => one_equation_solve | |
procedure, public :: heat_equation_terms => one_equation_heat | Returns the terms this melt formulation contributes to the heat equation, after they have been solved for using solve_for_melt. |
procedure, public :: salt_equation_terms => one_equation_salt | Returns the terms this melt formulation contributes to the salt equation, after they have been solved for using solve_for_melt. |
procedure, public :: melt_rate => ave_one_equation_melt_rate | Returns the melt rate calculated using this formulation, after it has been solved for using solve_for_melt. |
procedure, public :: has_heat_terms => one_equation_has_heat | Whether this formulation of melting contributes any terms to a plume's heat equation. |
procedure, public :: has_salt_terms => one_equation_has_salt | Whether this formulation of melting contributes any terms to a plume's salinity equation. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | coef1 | The unitless multiplier on the thermal forcing term, . |
||
real(kind=r8), | intent(in) | :: | coef2 | The unitless multiplier applied to the theram forcing term to get the melt rate, . |
||
real(kind=r8), | intent(in), | optional | :: | fresh_sal | The salinity of fresh water. Defaults to 0. |
|
real(kind=r8), | intent(in), | optional | :: | melt_temp | The melting point of the ice. Defaults to 0. |
|
real(kind=r8), | intent(in), | optional | :: | a_UabsT | The shape coefficient for a horizontally-integrated model. It is defined as where and are the shapes of the variables and in the transverse direction. Defaults to 1. |
The newly created object representing the melt relationship.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ave_one_equation_melt), | intent(in) | :: | this |
The value of the contribution made by melting/thermal transfer to the heat equation for a plume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ave_one_equation_melt), | intent(in) | :: | this |
The value of the contribution made by melting/thermal transfer to the salt equation for a plume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ave_one_equation_melt), | intent(in) | :: | this |
The melt rate from the ice into the plume water.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ave_one_equation_melt), | intent(in) | :: | this |
Whether this formulation of melting contributes terms to the heat equation of the plume.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ave_one_equation_melt), | intent(in) | :: | this |
Whether this formulation of melting contributes terms to the salinity equation of the plume.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ave_one_equation_melt), | 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. |