mom_eos_roquet_spv module reference

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

More…

Functions/Subroutines

calculate_spec_vol_scalar_roquet_spv()

Computes the Roquet et al.

calculate_spec_vol_array_roquet_spv()

Computes the Roquet et al.

calculate_density_scalar_roquet_spv()

Compute the in situ density of sea water at a point (rho in [kg m-3]) 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_density_array_roquet_spv()

Compute an array of in situ densities of sea water (rho in [kg m-3]) 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_specvol_derivs_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_array_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_density_derivs_scalar_roquet_spv()

Wrapper to calculate_density_derivs_array_Roquet_SpV for scalar inputs.

calculate_compress_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_array_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_array_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.

calculate_density_second_derivs_scalar_roquet_spv()

Second derivatives of density with respect to temperature, salinity, and pressure for scalar inputs.

eos_fit_range_roquet_spv()

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

Detailed Description

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

Function/Subroutine Documentation

subroutine mom_eos_roquet_spv/calculate_spec_vol_scalar_roquet_spv(T, S, pressure, specvol, spv_ref)

Computes the Roquet et al. in situ specific volume of sea water for scalar inputs and outputs.

Returns the in situ specific volume of sea water (specvol in [m3 kg-1]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa]. It uses the specific volume polynomial fit from Roquet et al. (2015). If spv_ref is present, specvol is an anomaly from spv_ref.

Parameters:
  • t :: [in] Conservative temperature [degC]

  • s :: [in] Absolute salinity [g kg-1]

  • pressure :: [in] Pressure [Pa]

  • specvol :: [out] In situ specific volume [m3 kg-1]

  • spv_ref :: [in] A reference specific volume [m3 kg-1]

subroutine mom_eos_roquet_spv/calculate_spec_vol_array_roquet_spv(T, S, pressure, specvol, start, npts, spv_ref)

Computes the Roquet et al. in situ specific volume of sea water for 1-d array inputs and outputs.

Returns the in situ specific volume of sea water (specvol in [m3 kg-1]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa]. It uses the specific volume polynomial fit from Roquet et al. (2015). If spv_ref is present, specvol is an anomaly from spv_ref.

Parameters:
  • t :: [in] Conservative temperature [degC]

  • s :: [in] Absolute salinity [g kg-1]

  • pressure :: [in] pressure [Pa]

  • specvol :: [inout] 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]

Called from:

mom_eos_roquet_spv::calculate_density_roquet_spv::calculate_density_array_roquet_spv mom_eos_roquet_spv::calculate_density_derivs_roquet_spv::calculate_density_derivs_array_roquet_spv mom_eos_roquet_spv::calculate_density_roquet_spv::calculate_density_scalar_roquet_spv mom_eos_roquet_spv::calculate_spec_vol_roquet_spv::calculate_spec_vol_scalar_roquet_spv

subroutine mom_eos_roquet_spv/calculate_density_scalar_roquet_spv(T, S, pressure, rho, rho_ref)

Compute the in situ density of sea water at a point (rho in [kg m-3]) 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:
  • t :: [in] Conservative temperature [degC]

  • s :: [in] Absolute salinity [g kg-1]

  • pressure :: [in] Pressure [Pa]

  • rho :: [out] In situ density [kg m-3]

  • rho_ref :: [in] A reference density [kg m-3]

subroutine mom_eos_roquet_spv/calculate_density_array_roquet_spv(T, S, pressure, rho, start, npts, rho_ref)

Compute an array of in situ densities of sea water (rho in [kg m-3]) 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:
  • t :: [in] Conservative temperature [degC]

  • s :: [in] Absolute salinity [g kg-1]

  • 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]

subroutine mom_eos_roquet_spv/calculate_specvol_derivs_roquet_spv(T, S, pressure, dSV_dT, dSV_dS, start, npts)

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:
  • 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]

  • start :: [in] The starting index for calculations

  • npts :: [in] The number of values to calculate

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

Called from:

mom_eos_roquet_spv::calculate_density_derivs_roquet_spv::calculate_density_derivs_array_roquet_spv mom_eos_roquet_spv::calculate_density_second_derivs_roquet_spv::calculate_density_second_derivs_array_roquet_spv

subroutine mom_eos_roquet_spv/calculate_density_derivs_array_roquet_spv(T, S, pressure, drho_dT, drho_dS, start, npts)

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:
  • 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]

  • start :: [in] The starting index for calculations

  • npts :: [in] The number of values to calculate

Called from:

mom_eos_roquet_spv::calculate_density_derivs_roquet_spv::calculate_density_derivs_scalar_roquet_spv

subroutine mom_eos_roquet_spv/calculate_density_derivs_scalar_roquet_spv(T, S, pressure, drho_dt, drho_ds)

Wrapper to calculate_density_derivs_array_Roquet_SpV for scalar inputs.

Parameters:
  • 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_roquet_spv(T, S, pressure, rho, drho_dp, start, npts)

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:
  • 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]

  • start :: [in] The starting index for calculations

  • npts :: [in] The number of values to calculate

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:

mom_eos_roquet_spv::calculate_density_second_derivs_roquet_spv::calculate_density_second_derivs_array_roquet_spv

subroutine mom_eos_roquet_spv/calc_spec_vol_second_derivs_array_roquet_spv(T, S, P, dSV_ds_ds, dSV_ds_dt, dSV_dt_dt, dSV_ds_dp, dSV_dt_dp, start, npts)

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]

  • start :: [in] The starting index for calculations

  • npts :: [in] The number of values to calculate

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:

mom_eos_roquet_spv::calculate_density_second_derivs_roquet_spv::calculate_density_second_derivs_array_roquet_spv

subroutine mom_eos_roquet_spv/calculate_density_second_derivs_array_roquet_spv(T, S, P, drho_ds_ds, drho_ds_dt, drho_dt_dt, drho_ds_dp, drho_dt_dp, start, npts)

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:
  • t :: [in] Conservative temperature [degC]

  • s :: [in] Absolute salinity [g kg-1]

  • p :: [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]

  • start :: [in] The starting index for calculations

  • npts :: [in] The number of values to calculate

Called from:

mom_eos_roquet_spv::calculate_density_second_derivs_roquet_spv::calculate_density_second_derivs_scalar_roquet_spv

subroutine mom_eos_roquet_spv/calculate_density_second_derivs_scalar_roquet_spv(T, S, P, 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 scalar inputs.

The scalar version of calculate_density_second_derivs promotes scalar inputs to 1-element array and then demotes the output back to a scalar

Parameters:
  • t :: [in] Conservative temperature [degC]

  • s :: [in] Absolute salinity [g kg-1]

  • p :: [in] pressure [Pa]

  • drho_ds_ds :: [out] Second derivative of density with respect to salinity [kg m-3 ppt-2]

  • drho_ds_dt :: [out] Second derivative of density with respect to salinity and temperature [kg m-3 ppt-1 degC-1]

  • drho_dt_dt :: [out] Second derivative of density with respect to temperature [kg m-3 degC-2]

  • drho_ds_dp :: [out] 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 :: [out] Second derivative of density with respect to pressure and temperature [kg m-3 degC-1 Pa-1] = [s2 m-2 degC-1]

subroutine mom_eos_roquet_spv/eos_fit_range_roquet_spv(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:
  • 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]

Called from:

mom_eos::eos_fit_range