mom_eos_roquet_spv module reference

The equation of state for specific volume (SpV) using the expressions of Roquet et al. 2015.

More…

Data Types

roquet_spv_eos

The EOS_base implementation of the Roquet et al., 2015, equation of state.

Functions/Subroutines

spec_vol_elem_roquet_spv()

Roquet et al.

spec_vol_anomaly_elem_roquet_spv()

Roquet et al.

density_elem_roquet_spv()

Roquet in situ density [kg m-3].

density_anomaly_elem_roquet_spv()

Roquet in situ density anomaly [kg m-3].

calculate_specvol_derivs_elem_roquet_spv()

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.

calculate_density_derivs_elem_roquet_spv()

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.

calculate_compress_elem_roquet_spv()

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.

calc_spec_vol_second_derivs_elem_roquet_spv()

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.

calculate_density_second_derivs_elem_roquet_spv()

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.

eos_fit_range_roquet_spv()

Return the range of temperatures, salinities and pressures for which the Roquet et al.

calculate_density_array_roquet_spv()

Calculate the in-situ density for 1D arraya inputs and outputs.

calculate_spec_vol_array_roquet_spv()

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_s0 rdeltas spv000 spv001 spv002 spv003 spv010 spv011 spv012 spv013 spv020 spv021 spv022 spv030 spv031 spv040 spv041 spv050 spv060 spv100 spv101 spv102 spv103 spv110 spv111 spv112 spv120 spv121 spv130 spv131 spv140 spv150 spv200 spv201 spv202 spv210 spv211 spv220 spv221 spv230 spv240 spv300 spv301 spv310 spv311 spv320 spv330 spv400 spv401 spv410 spv420 spv500 spv510 spv600 v00 v01 v02 v03 v04 v05

Called from:

calculate_spec_vol_array_roquet_spv density_elem_roquet_spv

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_s0 rdeltas spv000 spv001 spv002 spv003 spv010 spv011 spv012 spv013 spv020 spv021 spv022 spv030 spv031 spv040 spv041 spv050 spv060 spv100 spv101 spv102 spv103 spv110 spv111 spv112 spv120 spv121 spv130 spv131 spv140 spv150 spv200 spv201 spv202 spv210 spv211 spv220 spv221 spv230 spv240 spv300 spv301 spv310 spv311 spv320 spv330 spv400 spv401 spv410 spv420 spv500 spv510 spv600 v00 v01 v02 v03 v04 v05

Called from:

calculate_spec_vol_array_roquet_spv density_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:

spec_vol_elem_roquet_spv

Called from:

calculate_density_array_roquet_spv

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:

spec_vol_anomaly_elem_roquet_spv

Called from:

calculate_density_array_roquet_spv

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:

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_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_s0 rdeltas spv000 spv001 spv002 spv003 spv010 spv011 spv012 spv013 spv020 spv021 spv022 spv030 spv031 spv040 spv041 spv050 spv060 spv100 spv101 spv102 spv103 spv110 spv111 spv112 spv120 spv121 spv130 spv131 spv140 spv150 spv200 spv201 spv202 spv210 spv211 spv220 spv221 spv230 spv240 spv300 spv301 spv310 spv311 spv320 spv330 spv400 spv401 spv410 spv420 spv500 spv510 spv600 v00 v01 v02 v03 v04 v05

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_s0 rdeltas spv011 spv012 spv013 spv020 spv021 spv022 spv030 spv031 spv040 spv041 spv050 spv060 spv100 spv101 spv102 spv103 spv110 spv111 spv112 spv120 spv121 spv130 spv131 spv140 spv150 spv201 spv202 spv210 spv211 spv220 spv221 spv230 spv240 spv300 spv301 spv310 spv311 spv320 spv330 spv400 spv401 spv410 spv420 spv500 spv510 spv600

Called from:

calculate_density_second_derivs_elem_roquet_spv

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:

calc_spec_vol_second_derivs_elem_roquet_spv

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:

density_anomaly_elem_roquet_spv density_elem_roquet_spv

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:

spec_vol_anomaly_elem_roquet_spv spec_vol_elem_roquet_spv