mom_eos_roquet_spv module reference¶
The equation of state for specific volume (SpV) using the expressions of Roquet et al. 2015.
Data Types¶
The EOS_base implementation of the Roquet et al., 2015, equation of state. |
Functions/Subroutines¶
Roquet et al. |
|
Roquet et al. |
|
Roquet in situ density [kg m-3]. |
|
Roquet in situ density anomaly [kg m-3]. |
|
Return the partial derivatives of specific volume with temperature and salinity for 1-d array inputs and outputs, using the specific volume polynomial fit from Roquet et al. |
|
Compute an array of derivatives of densities of sea water with temperature (drho_dT in [kg m-3 degC-1]) and salinity (drho_dS in [kg m-3 ppt-1]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa], using the specific volume polynomial fit 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 specific volume polynomial fit from Roquet et al. |
|
Second derivatives of specific volume with respect to temperature, salinity, and pressure for a 1-d array inputs and outputs using the specific volume polynomial fit from Roquet et al. |
|
Second derivatives of density with respect to temperature, salinity, and pressure for a 1-d array inputs and outputs using the specific volume polynomial fit 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 for specific volume (SpV) using the expressions of Roquet et al. 2015.
Type Documentation¶
-
type
mom_eos_roquet_spv/roquet_spv_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_spv/spec_vol_elem_roquet_spv(this, T, S, pressure) [elemental]¶ Roquet et al. in situ specific volume of sea water [m3 kg-1].
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:
r1_s0rdeltasspv000spv001spv002spv003spv010spv011spv012spv013spv020spv021spv022spv030spv031spv040spv041spv050spv060spv100spv101spv102spv103spv110spv111spv112spv120spv121spv130spv131spv140spv150spv200spv201spv202spv210spv211spv220spv221spv230spv240spv300spv301spv310spv311spv320spv330spv400spv401spv410spv420spv500spv510spv600v00v01v02v03v04v05- Called from:
-
function
mom_eos_roquet_spv/spec_vol_anomaly_elem_roquet_spv(this, T, S, pressure, spv_ref) [elemental]¶ Roquet et al. in situ specific volume anomaly of sea water [m3 kg-1].
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:
r1_s0rdeltasspv000spv001spv002spv003spv010spv011spv012spv013spv020spv021spv022spv030spv031spv040spv041spv050spv060spv100spv101spv102spv103spv110spv111spv112spv120spv121spv130spv131spv140spv150spv200spv201spv202spv210spv211spv220spv221spv230spv240spv300spv301spv310spv311spv320spv330spv400spv401spv410spv420spv500spv510spv600v00v01v02v03v04v05- Called from:
calculate_spec_vol_array_roquet_spvdensity_anomaly_elem_roquet_spv
-
function
mom_eos_roquet_spv/density_elem_roquet_spv(this, T, S, pressure) [elemental]¶ Roquet in situ density [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_spv/density_anomaly_elem_roquet_spv(this, T, S, pressure, rho_ref) [elemental]¶ Roquet in situ density anomaly [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:
- Called from:
-
subroutine
mom_eos_roquet_spv/calculate_specvol_derivs_elem_roquet_spv(this, T, S, pressure, dSV_dT, dSV_dS)¶ Return the partial derivatives of specific volume with temperature and salinity for 1-d array inputs and outputs, using the specific volume polynomial fit 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 conservative temperature [m3 kg-1 degC-1]
dsv_ds :: [inout] The partial derivative of specific volume with absolute salinity [m3 kg-1 ppt-1]
- Call to:
alp000alp001alp002alp003alp010alp011alp012alp020alp021alp030alp031alp040alp050alp100alp101alp102alp110alp111alp120alp121alp130alp140alp200alp201alp210alp211alp220alp230alp300alp301alp310alp320alp400alp410alp500bet000bet001bet002bet003bet010bet011bet012bet020bet021bet030bet031bet040bet050bet100bet101bet102bet110bet111bet120bet121bet130bet140bet200bet201bet210bet211bet220bet230bet300bet301bet310bet320bet400bet410bet500r1_s0rdeltas
-
subroutine
mom_eos_roquet_spv/calculate_density_derivs_elem_roquet_spv(this, T, S, pressure, drho_dT, drho_dS)¶ Compute an array of derivatives of densities of sea water with temperature (drho_dT in [kg m-3 degC-1]) and salinity (drho_dS in [kg m-3 ppt-1]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa], using the specific volume polynomial fit 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 conservative temperature [kg m-3 degC-1]
drho_ds :: [out] The partial derivative of density with absolute salinity [kg m-3 ppt-1]
-
subroutine
mom_eos_roquet_spv/calculate_compress_elem_roquet_spv(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 specific volume polynomial fit 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:
r1_s0rdeltasspv000spv001spv002spv003spv010spv011spv012spv013spv020spv021spv022spv030spv031spv040spv041spv050spv060spv100spv101spv102spv103spv110spv111spv112spv120spv121spv130spv131spv140spv150spv200spv201spv202spv210spv211spv220spv221spv230spv240spv300spv301spv310spv311spv320spv330spv400spv401spv410spv420spv500spv510spv600v00v01v02v03v04v05
-
subroutine
mom_eos_roquet_spv/calc_spec_vol_second_derivs_elem_roquet_spv(T, S, P, dSV_ds_ds, dSV_ds_dt, dSV_dt_dt, dSV_ds_dp, dSV_dt_dp)¶ Second derivatives of specific volume with respect to temperature, salinity, and pressure for a 1-d array inputs and outputs using the specific volume polynomial fit from Roquet et al. (2015).
- Parameters:
t :: [in] Conservative temperature [degC]
s :: [in] Absolute salinity [g kg-1]
p :: [in] Pressure [Pa]
dsv_ds_ds :: [inout] Second derivative of specific volume with respect to salinity [m3 kg-1 ppt-2]
dsv_ds_dt :: [inout] Second derivative of specific volume with respect to salinity and temperature [m3 kg-1 ppt-1 degC-1]
dsv_dt_dt :: [inout] Second derivative of specific volume with respect to temperature [m3 kg-1 degC-2]
dsv_ds_dp :: [inout] Second derivative of specific volume with respect to pressure and salinity [m3 kg-1 ppt-1 Pa-1]
dsv_dt_dp :: [inout] Second derivative of specific volume with respect to pressure and temperature [m3 kg-1 degC-1 Pa-1]
- Call to:
r1_s0rdeltasspv011spv012spv013spv020spv021spv022spv030spv031spv040spv041spv050spv060spv100spv101spv102spv103spv110spv111spv112spv120spv121spv130spv131spv140spv150spv201spv202spv210spv211spv220spv221spv230spv240spv300spv301spv310spv311spv320spv330spv400spv401spv410spv420spv500spv510spv600- Called from:
-
subroutine
mom_eos_roquet_spv/calculate_density_second_derivs_elem_roquet_spv(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 for a 1-d array inputs and outputs using the specific volume polynomial fit 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_ds_ds :: [inout] Second derivative of density with respect to salinity [kg m-3 ppt-2]
drho_ds_dt :: [inout] Second derivative of density with respect to salinity and temperature [kg m-3 ppt-1 degC-1]
drho_dt_dt :: [inout] Second derivative of density with respect to temperature [kg m-3 degC-2]
drho_ds_dp :: [inout] Second derivative of density with respect to pressure and salinity [kg m-3 ppt-1 Pa-1] = [s2 m-2 ppt-1]
drho_dt_dp :: [inout] Second derivative of density with respect to pressure and temperature [kg m-3 degC-1 Pa-1] = [s2 m-2 degC-1]
- Call to:
-
subroutine
mom_eos_roquet_spv/eos_fit_range_roquet_spv(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 specific volume 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_spv/calculate_density_array_roquet_spv(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_spv/calculate_spec_vol_array_roquet_spv(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: