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:
eos000eos001eos002eos003eos010eos011eos012eos013eos020eos021eos022eos030eos031eos040eos041eos050eos060eos100eos101eos102eos103eos110eos111eos112eos120eos121eos130eos131eos140eos150eos200eos201eos202eos210eos211eos220eos221eos230eos240eos300eos301eos310eos311eos320eos330eos400eos401eos410eos420eos500eos510eos600r00r01r02r03r04r05r1_s0rdeltas- Called from:
calculate_density_array_roquet_rhospec_vol_anomaly_elem_roquet_rhospec_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:
eos000eos001eos002eos003eos010eos011eos012eos013eos020eos021eos022eos030eos031eos040eos041eos050eos060eos100eos101eos102eos103eos110eos111eos112eos120eos121eos130eos131eos140eos150eos200eos201eos202eos210eos211eos220eos221eos230eos240eos300eos301eos310eos311eos320eos330eos400eos401eos410eos420eos500eos510eos600r00r01r02r03r04r05r1_s0rdeltas- 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:
alp000alp001alp002alp003alp010alp011alp012alp020alp021alp030alp031alp040alp050alp100alp101alp102alp110alp111alp120alp121alp130alp140alp200alp201alp210alp211alp220alp230alp300alp301alp310alp320alp400alp410alp500bet000bet001bet002bet003bet010bet011bet012bet020bet021bet030bet031bet040bet050bet100bet101bet102bet110bet111bet120bet121bet130bet140bet200bet201bet210bet211bet220bet230bet300bet301bet310bet320bet400bet410bet500r1_s0rdeltas
-
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:
eos011eos012eos013eos020eos021eos022eos030eos031eos040eos041eos050eos060eos100eos101eos102eos103eos110eos111eos112eos120eos121eos130eos131eos140eos150eos201eos202eos210eos211eos220eos221eos230eos240eos300eos301eos310eos311eos320eos330eos400eos401eos410eos420eos500eos510eos600r1_s0rdeltas
-
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:
eos000eos001eos002eos003eos010eos011eos012eos013eos020eos021eos022eos030eos031eos040eos041eos050eos060eos100eos101eos102eos103eos110eos111eos112eos120eos121eos130eos131eos140eos150eos200eos201eos202eos210eos211eos220eos221eos230eos240eos300eos301eos310eos311eos320eos330eos400eos401eos410eos420eos500eos510eos600r00r01r02r03r04r05r1_s0rdeltas
-
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: