A linearised implementation of the equation of state, of the form
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=r8), | private | :: | ref_rho | = | 1.0_r8 | The density for the temperature and salinity about which the equation of state was linearised, . |
|
real(kind=r8), | private | :: | ref_t | = | 0.0_r8 | The temperature about which the equation of state was linearised, . |
|
real(kind=r8), | private | :: | ref_s | = | 0.0_r8 | The salinity about which the equation of state was linearised, . |
|
real(kind=r8), | private | :: | beta_t | = | 0.0_r8 | The thermal contraction coefficient, . |
|
real(kind=r8), | private | :: | beta_s | = | 1.0_r8 | The haline contraction coefficient, . |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in) | :: | ref_rho | The density for the temperature and salinity about which the equation of state was linearised, . |
||
real(kind=r8), | intent(in) | :: | ref_t | The temperature about which the equation of state was linearised, . |
||
real(kind=r8), | intent(in) | :: | ref_s | The salinity about which the equation of state was linearised, . |
||
real(kind=r8), | intent(in) | :: | beta_t | The thermal contraction coefficient, . |
||
real(kind=r8), | intent(in) | :: | beta_s | The haline contraction coefficient, . |
Calculates the density of the water from the temperature and salinity, using a linear equatino of state,
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(linear_eos), | 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 |
A field containing the density of the water
Calculates the derivative of the water density from the temperature and salinity, using a linear equatino of state,
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(linear_eos), | 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 |
||
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 |
||
integer, | intent(in) | :: | dir | The direction in which to take the derivative |
A field containing the density of the water
Returns the haline contraction coefficient.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(linear_eos), | intent(in) | :: | this | |||
class(scalar_field), | intent(in) | :: | temperature | |||
class(scalar_field), | intent(in) | :: | salinity |
Returns the thermal contraction coefficient.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(linear_eos), | intent(in) | :: | this | |||
class(scalar_field), | intent(in) | :: | temperature | |||
class(scalar_field), | intent(in) | :: | salinity |
type, extends(equation_of_state), public :: linear_eos
!* Author: Chris MacMackin
! Date: April 2016
!
! A linearised implementation of the equation of state, of the
! form $$ \rho = \rho_0[1-\beta_T(T-T_0) + \beta_S(S-S_0)]. $$
!
private
real(r8) :: ref_rho = 1.0_r8
!! The density for the temperature and salinity about which the
!! equation of state was linearised, \(\rho_0\).
real(r8) :: ref_t = 0.0_r8
!! The temperature about which the equation of state was
!! linearised, \(T_0\).
real(r8) :: ref_s = 0.0_r8
!! The salinity about which the equation of state was
!! linearised, \(S_0\).
real(r8) :: beta_t = 0.0_r8
!! The thermal contraction coefficient, \(\beta_T\).
real(r8) :: beta_s = 1.0_r8
!! The haline contraction coefficient, \(\beta_S\).
contains
procedure :: water_density => linear_water_density
procedure :: water_density_derivative => linear_water_deriv
procedure :: haline_contraction => linear_haline_contraction
procedure :: thermal_contraction => linear_thermal_contraction
end type linear_eos