mom_eos_roquet_rho module reference¶
The equation of state using the expressions of Roquet et al. (2015) that are used in NEMO.
Data Types¶
The EOS_base implementation of the Roquet et al., 2015, equation of state. |
Functions/Subroutines¶
In situ density of sea water from Roquet et al., 2015 [kg m-3]. |
|
In situ density anomaly of sea water from Roquet et al., 2015 [kg m-3]. |
|
In situ specific volume of sea water from Roquet et al., 2015 [kg m-3]. |
|
In situ specific volume anomaly of sea water from Roquet et al., 2015 [kg m-3]. |
|
For a given thermodynamic state, calculate the derivatives of density with conservative temperature and absolute salinity, using the density polynomial fit EOS from Roquet et al. |
|
Second derivatives of density with respect to temperature, salinity, and pressure. |
|
Calculate the partial derivatives of specific volume with temperature and salinity using the density polynomial fit EOS from Roquet et al. |
|
Compute the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2, stored as drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa], using the density polynomial fit EOS from Roquet et al. |
|
Return the range of temperatures, salinities and pressures for which the Roquet et al. |
|
Calculate the in-situ density for 1D arraya inputs and outputs. |
|
Calculate the in-situ specific volume for 1D array inputs and outputs. |
Detailed Description¶
The equation of state using the expressions of Roquet et al. (2015) that are used in NEMO.
Type Documentation¶
-
type
mom_eos_roquet_rho/
roquet_rho_eos
¶ The EOS_base implementation of the Roquet et al., 2015, equation of state.
- Type fields:
%
density_elem
[procedure,private] :: Implementation of the in-situ density as an elemental function [kg m-3].%
density_anomaly_elem
[procedure,private] :: Implementation of the in-situ density anomaly as an elemental function [kg m-3].%
spec_vol_elem
[procedure,private] :: Implementation of the in-situ specific volume as an elemental function [m3 kg-1].%
spec_vol_anomaly_elem
[procedure,private] :: Implementation of the in-situ specific volume anomaly as an elemental function [m3 kg-1].%
calculate_density_derivs_elem
[procedure,private] :: Implementation of the calculation of derivatives of density.%
calculate_density_second_derivs_elem
[procedure,private] :: Implementation of the calculation of second derivatives of density.%
calculate_specvol_derivs_elem
[procedure,private] :: Implementation of the calculation of derivatives of specific volume.%
calculate_compress_elem
[procedure,private] :: Implementation of the calculation of compressibility.%
eos_fit_range
[procedure,private] :: Implementation of the range query function.%
calculate_density_array
[procedure,private] :: Local implementation of generic calculate_density_array for efficiency.%
calculate_spec_vol_array
[procedure,private] :: Local implementation of generic calculate_spec_vol_array for efficiency.
Function/Subroutine Documentation¶
-
function
mom_eos_roquet_rho/
density_elem_roquet_rho
(this, T, S, pressure) [elemental]¶ In situ density of sea water from Roquet et al., 2015 [kg m-3].
This is an elemental function that can be applied to any combination of scalar and array inputs.
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
- Call to:
eos000
eos001
eos002
eos003
eos010
eos011
eos012
eos013
eos020
eos021
eos022
eos030
eos031
eos040
eos041
eos050
eos060
eos100
eos101
eos102
eos103
eos110
eos111
eos112
eos120
eos121
eos130
eos131
eos140
eos150
eos200
eos201
eos202
eos210
eos211
eos220
eos221
eos230
eos240
eos300
eos301
eos310
eos311
eos320
eos330
eos400
eos401
eos410
eos420
eos500
eos510
eos600
r00
r01
r02
r03
r04
r05
r1_s0
rdeltas
- Called from:
calculate_density_array_roquet_rho
spec_vol_anomaly_elem_roquet_rho
spec_vol_elem_roquet_rho
-
function
mom_eos_roquet_rho/
density_anomaly_elem_roquet_rho
(this, T, S, pressure, rho_ref) [elemental]¶ In situ density anomaly of sea water from Roquet et al., 2015 [kg m-3].
This is an elemental function that can be applied to any combination of scalar and array inputs.
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
rho_ref :: [in] A reference density [kg m-3]
- Call to:
eos000
eos001
eos002
eos003
eos010
eos011
eos012
eos013
eos020
eos021
eos022
eos030
eos031
eos040
eos041
eos050
eos060
eos100
eos101
eos102
eos103
eos110
eos111
eos112
eos120
eos121
eos130
eos131
eos140
eos150
eos200
eos201
eos202
eos210
eos211
eos220
eos221
eos230
eos240
eos300
eos301
eos310
eos311
eos320
eos330
eos400
eos401
eos410
eos420
eos500
eos510
eos600
r00
r01
r02
r03
r04
r05
r1_s0
rdeltas
- Called from:
-
function
mom_eos_roquet_rho/
spec_vol_elem_roquet_rho
(this, T, S, pressure) [elemental]¶ In situ specific volume of sea water from Roquet et al., 2015 [kg m-3].
This is an elemental function that can be applied to any combination of scalar and array inputs.
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
- Call to:
- Called from:
-
function
mom_eos_roquet_rho/
spec_vol_anomaly_elem_roquet_rho
(this, T, S, pressure, spv_ref) [elemental]¶ In situ specific volume anomaly of sea water from Roquet et al., 2015 [kg m-3].
This is an elemental function that can be applied to any combination of scalar and array inputs.
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
spv_ref :: [in] A reference specific volume [m3 kg-1]
- Call to:
- Called from:
-
subroutine
mom_eos_roquet_rho/
calculate_density_derivs_elem_roquet_rho
(this, T, S, pressure, drho_dT, drho_dS)¶ For a given thermodynamic state, calculate the derivatives of density with conservative temperature and absolute salinity, using the density polynomial fit EOS from Roquet et al. (2015).
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
drho_dt :: [out] The partial derivative of density with potential temperature [kg m-3 degC-1]
drho_ds :: [out] The partial derivative of density with salinity, in [kg m-3 ppt-1]
- Call to:
alp000
alp001
alp002
alp003
alp010
alp011
alp012
alp020
alp021
alp030
alp031
alp040
alp050
alp100
alp101
alp102
alp110
alp111
alp120
alp121
alp130
alp140
alp200
alp201
alp210
alp211
alp220
alp230
alp300
alp301
alp310
alp320
alp400
alp410
alp500
bet000
bet001
bet002
bet003
bet010
bet011
bet012
bet020
bet021
bet030
bet031
bet040
bet050
bet100
bet101
bet102
bet110
bet111
bet120
bet121
bet130
bet140
bet200
bet201
bet210
bet211
bet220
bet230
bet300
bet301
bet310
bet320
bet400
bet410
bet500
r1_s0
rdeltas
-
subroutine
mom_eos_roquet_rho/
calculate_density_second_derivs_elem_roquet_rho
(this, T, S, pressure, drho_ds_ds, drho_ds_dt, drho_dt_dt, drho_ds_dp, drho_dt_dp)¶ Second derivatives of density with respect to temperature, salinity, and pressure.
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
drho_ds_ds :: [inout] Partial derivative of beta with respect to S [kg m-3 ppt-2]
drho_ds_dt :: [inout] Partial derivative of beta with respect to T [kg m-3 ppt-1 degC-1]
drho_dt_dt :: [inout] Partial derivative of alpha with respect to T [kg m-3 degC-2]
drho_ds_dp :: [inout] Partial derivative of beta with respect to pressure [kg m-3 ppt-1 Pa-1] = [s2 m-2 ppt-1]
drho_dt_dp :: [inout] Partial derivative of alpha with respect to pressure [kg m-3 degC-1 Pa-1] = [s2 m-2 degC-1]
- Call to:
eos011
eos012
eos013
eos020
eos021
eos022
eos030
eos031
eos040
eos041
eos050
eos060
eos100
eos101
eos102
eos103
eos110
eos111
eos112
eos120
eos121
eos130
eos131
eos140
eos150
eos201
eos202
eos210
eos211
eos220
eos221
eos230
eos240
eos300
eos301
eos310
eos311
eos320
eos330
eos400
eos401
eos410
eos420
eos500
eos510
eos600
r1_s0
rdeltas
-
subroutine
mom_eos_roquet_rho/
calculate_specvol_derivs_elem_roquet_rho
(this, T, S, pressure, dSV_dT, dSV_dS)¶ Calculate the partial derivatives of specific volume with temperature and salinity using the density polynomial fit EOS from Roquet et al. (2015).
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
dsv_dt :: [inout] The partial derivative of specific volume with potential temperature [m3 kg-1 degC-1]
dsv_ds :: [inout] The partial derivative of specific volume with salinity [m3 kg-1 ppt-1]
-
subroutine
mom_eos_roquet_rho/
calculate_compress_elem_roquet_rho
(this, T, S, pressure, rho, drho_dp)¶ Compute the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2, stored as drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa], using the density polynomial fit EOS from Roquet et al. (2015).
- Parameters:
this :: [in] This EOS
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
pressure :: [in] Pressure [Pa]
rho :: [out] In situ density [kg m-3]
drho_dp :: [out] The partial derivative of density with pressure (also the inverse of the square of sound speed) [s2 m-2]
- Call to:
eos000
eos001
eos002
eos003
eos010
eos011
eos012
eos013
eos020
eos021
eos022
eos030
eos031
eos040
eos041
eos050
eos060
eos100
eos101
eos102
eos103
eos110
eos111
eos112
eos120
eos121
eos130
eos131
eos140
eos150
eos200
eos201
eos202
eos210
eos211
eos220
eos221
eos230
eos240
eos300
eos301
eos310
eos311
eos320
eos330
eos400
eos401
eos410
eos420
eos500
eos510
eos600
r00
r01
r02
r03
r04
r05
r1_s0
rdeltas
-
subroutine
mom_eos_roquet_rho/
eos_fit_range_roquet_rho
(this, T_min, T_max, S_min, S_max, p_min, p_max)¶ Return the range of temperatures, salinities and pressures for which the Roquet et al. (2015) expression for in situ density has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.
- Parameters:
this :: [in] This EOS
t_min :: [out] The minimum conservative temperature over which this EoS is fitted [degC]
t_max :: [out] The maximum conservative temperature over which this EoS is fitted [degC]
s_min :: [out] The minimum absolute salinity over which this EoS is fitted [g kg-1]
s_max :: [out] The maximum absolute salinity over which this EoS is fitted [g kg-1]
p_min :: [out] The minimum pressure over which this EoS is fitted [Pa]
p_max :: [out] The maximum pressure over which this EoS is fitted [Pa]
-
subroutine
mom_eos_roquet_rho/
calculate_density_array_roquet_rho
(this, T, S, pressure, rho, start, npts, rho_ref)¶ Calculate the in-situ density for 1D arraya inputs and outputs.
- Parameters:
this :: [in] This EOS
t :: [in] Potential temperature relative to the surface [degC]
s :: [in] Salinity [PSU]
pressure :: [in] Pressure [Pa]
rho :: [out] In situ density [kg m-3]
start :: [in] The starting index for calculations
npts :: [in] The number of values to calculate
rho_ref :: [in] A reference density [kg m-3]
- Call to:
-
subroutine
mom_eos_roquet_rho/
calculate_spec_vol_array_roquet_rho
(this, T, S, pressure, specvol, start, npts, spv_ref)¶ Calculate the in-situ specific volume for 1D array inputs and outputs.
- Parameters:
this :: [in] This EOS
t :: [in] Potential temperature relative to the surface [degC]
s :: [in] Salinity [PSU]
pressure :: [in] Pressure [Pa]
specvol :: [out] In situ specific volume [m3 kg-1]
start :: [in] The starting index for calculations
npts :: [in] The number of values to calculate
spv_ref :: [in] A reference specific volume [m3 kg-1]
- Call to: