mom_eos_roquet_rho module reference

The equation of state using the expressions of Roquet et al. (2015) that are used in NEMO.

More…

Functions/Subroutines

calculate_density_scalar_roquet_rho()

This subroutine computes the in situ density of sea water (rho in [kg m-3]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa], using the density polynomial fit EOS from Roquet et al.

calculate_density_array_roquet_rho()

This subroutine computes 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 density polynomial fit EOS from Roquet et al.

calculate_density_derivs_array_roquet_rho()

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.

calculate_density_derivs_scalar_roquet_rho()

Wrapper to calculate_density_derivs_array for scalar inputs.

calculate_compress_roquet_rho()

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.

calculate_density_second_derivs_array_roquet_rho()

Second derivatives of density with respect to temperature, salinity, and pressure for 1-d array inputs and outputs.

calculate_density_second_derivs_scalar_roquet_rho()

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

eos_fit_range_roquet_rho()

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

Detailed Description

The equation of state using the expressions of Roquet et al. (2015) that are used in NEMO.

Function/Subroutine Documentation

subroutine mom_eos_roquet_rho/calculate_density_scalar_roquet_rho(T, S, pres, rho, rho_ref)

This subroutine computes the in situ density of sea water (rho in [kg m-3]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa], using the density polynomial fit EOS from Roquet et al. (2015).

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

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

  • pres :: [in] Pressure [Pa]

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

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

subroutine mom_eos_roquet_rho/calculate_density_array_roquet_rho(T, S, pres, rho, start, npts, rho_ref)

This subroutine computes 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 density polynomial fit EOS from Roquet et al. (2015).

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

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

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

Called from:

mom_eos_roquet_rho::calculate_density_roquet_rho::calculate_density_scalar_roquet_rho

subroutine mom_eos_roquet_rho/calculate_density_derivs_array_roquet_rho(T, S, pres, drho_dT, drho_dS, start, npts)

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

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

  • pres :: [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_rho::calculate_density_derivs_roquet_rho::calculate_density_derivs_scalar_roquet_rho

subroutine mom_eos_roquet_rho/calculate_density_derivs_scalar_roquet_rho(T, S, pres, drho_dt, drho_ds)

Wrapper to calculate_density_derivs_array for scalar inputs.

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

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

  • pres :: [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_rho/calculate_compress_roquet_rho(T, S, pres, 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 density polynomial fit EOS from Roquet et al. (2015).

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

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

  • pres :: [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:

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/calculate_density_second_derivs_array_roquet_rho(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 1-d array inputs and outputs.

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

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

  • 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_rho::calculate_density_second_derivs_roquet_rho::calculate_density_second_derivs_scalar_roquet_rho

subroutine mom_eos_roquet_rho/calculate_density_second_derivs_scalar_roquet_rho(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_rho/eos_fit_range_roquet_rho(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:
  • 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