mom_eos_jackett06 module reference

The equation of state using the Jackett et al 2006 expressions that are often used in Hycom.

More…

Functions/Subroutines

calculate_density_array_jackett()

Computes the in situ density of sea water for 1-d array inputs and outputs.

calculate_spec_vol_array_jackett()

Computes the Jackett et al.

calculate_density_derivs_array_jackett()

Return the thermal/haline expansion coefficients for 1-d array inputs and outputs.

calculate_specvol_derivs_jackett06()

Return the partial derivatives of specific volume with temperature and salinity for 1-d array inputs and outputs.

calculate_compress_jackett06()

Computes the compressibility of seawater for 1-d array inputs and outputs.

calculate_density_second_derivs_array_jackett()

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

calculate_density_scalar_jackett()

Computes the in situ density of sea water for scalar inputs and outputs.

calculate_spec_vol_scalar_jackett()

Computes the Jackett et al.

calculate_density_derivs_scalar_jackett()

Return the thermal/haline expansion coefficients for scalar inputs and outputs.

calculate_density_second_derivs_scalar_jackett()

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

eos_fit_range_jackett06()

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

Detailed Description

The equation of state using the Jackett et al 2006 expressions that are often used in Hycom.

Function/Subroutine Documentation

subroutine mom_eos_jackett06/calculate_density_array_jackett(T, S, pres, rho, start, npts, rho_ref)

Computes the in situ density of sea water for 1-d array inputs and outputs.

Returns the in situ density of sea water (rho in [kg m-3]) from salinity (S [PSU]), potential temperature (T [degC]), and pressure [Pa]. It uses the expression from Jackett et al., 2006, J. Atmos. Ocean. Tech., 32, 1709-1728.

Parameters:
  • t :: [in] Potential temperature relative to the surface [degC].

  • s :: [in] Salinity [PSU].

  • pres :: [in] Pressure [Pa].

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

  • start :: [in] The starting point in the arrays.

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

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

Called from:

mom_eos_jackett06::calculate_density_jackett06::calculate_density_scalar_jackett

subroutine mom_eos_jackett06/calculate_spec_vol_array_jackett(T, S, pres, specvol, start, npts, spv_ref)

Computes the Jackett 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 salinity (S [PSU]), potential temperature (T [degC]) and pressure [Pa]. It uses the expression from Jackett et al., 2006, J. Atmos. Ocean. Tech., 32, 1709-1728. If spv_ref is present, specvol is an anomaly from spv_ref.

Parameters:
  • t :: [in] potential temperature relative to the surface [degC].

  • s :: [in] salinity [PSU].

  • pres :: [in] pressure [Pa].

  • specvol :: [inout] in situ specific volume [m3 kg-1].

  • start :: [in] the starting point in the arrays.

  • npts :: [in] the number of values to calculate.

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

Called from:

mom_eos_jackett06::calculate_spec_vol_jackett06::calculate_spec_vol_scalar_jackett

subroutine mom_eos_jackett06/calculate_density_derivs_array_jackett(T, S, pres, drho_dT, drho_dS, start, npts)

Return the thermal/haline expansion coefficients for 1-d array inputs and outputs.

Parameters:
  • t :: [in] Potential temperature relative to the surface [degC].

  • s :: [in] Salinity [PSU].

  • pres :: [in] pressure [Pa].

  • drho_dt :: [inout] The partial derivative of density with potential temperature [kg m-3 degC-1].

  • drho_ds :: [inout] The partial derivative of density with salinity, in [kg m-3 PSU-1].

  • start :: [in] The starting point in the arrays.

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

Called from:

mom_eos_jackett06::calculate_density_derivs_jackett06::calculate_density_derivs_scalar_jackett

subroutine mom_eos_jackett06/calculate_specvol_derivs_jackett06(T, S, pres, dSV_dT, dSV_dS, start, npts)

Return the partial derivatives of specific volume with temperature and salinity for 1-d array inputs and outputs.

Parameters:
  • t :: [in] Potential temperature relative to the surface [degC].

  • s :: [in] Salinity [PSU].

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

  • start :: [in] The starting point in the arrays.

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

Call to:

rd001 rd010 rd013 rd020 rd030 rd032 rd040 rd100 rd110 rd130 rd600 rd620 rn000 rn001 rn002 rn010 rn020 rn021 rn022 rn030 rn100 rn101 rn110 rn200

subroutine mom_eos_jackett06/calculate_compress_jackett06(T, S, pres, rho, drho_dp, start, npts)

Computes the compressibility of seawater for 1-d array inputs and outputs.

Parameters:
  • t :: [in] Potential temperature relative to the surface [degC].

  • s :: [in] Salinity [PSU].

  • pres :: [in] Pressure [Pa].

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

  • drho_dp :: [inout] The partial derivative of density with pressure (also the inverse of the square of sound speed) [s2 m-2].

  • start :: [in] The starting point in the arrays.

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

Call to:

rd001 rd010 rd013 rd020 rd030 rd032 rd040 rd100 rd110 rd130 rd600 rd620 rn000 rn001 rn002 rn010 rn020 rn021 rn022 rn030 rn100 rn101 rn110 rn200

subroutine mom_eos_jackett06/calculate_density_second_derivs_array_jackett(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] Potential temperature referenced to 0 dbar [degC]

  • s :: [in] Salinity [PSU]

  • p :: [in] Pressure [Pa]

  • drho_ds_ds :: [inout] Partial derivative of beta with respect to S [kg m-3 PSU-2]

  • drho_ds_dt :: [inout] Partial derivative of beta with respect to T [kg m-3 PSU-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 PSU-1 Pa-1] = [s2 m-2 PSU-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]

  • start :: [in] Starting index in T,S,P

  • npts :: [in] Number of points to loop over

Called from:

mom_eos_jackett06::calculate_density_second_derivs_jackett06::calculate_density_second_derivs_scalar_jackett

subroutine mom_eos_jackett06/calculate_density_scalar_jackett(T, S, pressure, rho, rho_ref)

Computes the in situ density of sea water for scalar inputs and outputs.

Returns the in situ density of sea water (rho in [kg m-3]) from salinity (S [PSU]), potential temperature (T [degC]), and pressure [Pa]. It uses the expression from Jackett et al., 2006, J. Atmos. Ocean. Tech., 32, 1709-1728.

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

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

subroutine mom_eos_jackett06/calculate_spec_vol_scalar_jackett(T, S, pressure, specvol, spv_ref)

Computes the Jackett et al. 2006 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 salinity (S [PSU]), potential temperature (T [degC]) and pressure [Pa]. It uses the expression from Jackett et al., 2006, J. Atmos. Ocean. Tech., 32, 1709-1728. If spv_ref is present, specvol is an anomaly from spv_ref.

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

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

subroutine mom_eos_jackett06/calculate_density_derivs_scalar_jackett(T, S, pressure, drho_dT, drho_dS)

Return the thermal/haline expansion coefficients for scalar inputs and outputs.

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

Parameters:
  • t :: [in] Potential temperature relative to the surface [degC].

  • s :: [in] Salinity [PSU].

  • 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 PSU-1].

subroutine mom_eos_jackett06/calculate_density_second_derivs_scalar_jackett(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] Potential temperature referenced to 0 dbar

  • s :: [in] Salinity [PSU]

  • p :: [in] pressure [Pa]

  • drho_ds_ds :: [out] Partial derivative of beta with respect to S [kg m-3 PSU-2]

  • drho_ds_dt :: [out] Partial derivative of beta with respect to T [kg m-3 PSU-1 degC-1]

  • drho_dt_dt :: [out] Partial derivative of alpha with respect to T [kg m-3 degC-2]

  • drho_ds_dp :: [out] Partial derivative of beta with respect to pressure [kg m-3 PSU-1 Pa-1] = [s2 m-2 PSU-1]

  • drho_dt_dp :: [out] Partial derivative of alpha with respect to pressure [kg m-3 degC-1 Pa-1] = [s2 m-2 degC-1]

subroutine mom_eos_jackett06/eos_fit_range_jackett06(T_min, T_max, S_min, S_max, p_min, p_max)

Return the range of temperatures, salinities and pressures for which the Jackett et al. (2006) equation of state 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 potential temperature over which this EoS is fitted [degC]

  • t_max :: [out] The maximum potential temperature over which this EoS is fitted [degC]

  • s_min :: [out] The minimum practical salinity over which this EoS is fitted [PSU]

  • s_max :: [out] The maximum practical salinity over which this EoS is fitted [PSU]

  • 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