MOM6
|
Data Types | |
interface | calculate_density_wright |
Functions/Subroutines | |
subroutine, public | calculate_density_scalar_wright (T, S, pressure, rho) |
This subroutine computes the in situ density of sea water (rho in units of kg/m^3) from salinity (S in psu), potential temperature (T in deg C), and pressure in Pa. It uses the expression from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. Coded by R. Hallberg, 7/00. More... | |
subroutine, public | calculate_density_array_wright (T, S, pressure, rho, start, npts) |
This subroutine computes the in situ density of sea water (rho in units of kg/m^3) from salinity (S in psu), potential temperature (T in deg C), and pressure in Pa. It uses the expression from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. Coded by R. Hallberg, 7/00. More... | |
subroutine, public | calculate_density_derivs_wright (T, S, pressure, drho_dT, drho_dS, start, npts) |
subroutine, public | calculate_specvol_derivs_wright (T, S, pressure, dSV_dT, dSV_dS, start, npts) |
subroutine, public | calculate_compress_wright (T, S, pressure, rho, drho_dp, start, npts) |
This subroutine computes the in situ density of sea water (rho in units of kg/m^3) and the compressibility (drho/dp = C_sound^-2) (drho_dp in units of s2 m-2) from salinity (sal in psu), potential temperature (T in deg C), and pressure in Pa. It uses the expressions from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. Coded by R. Hallberg, 1/01. More... | |
subroutine, public | int_density_dz_wright (T, S, z_t, z_b, rho_ref, rho_0, G_e, HII, HIO, dpa, intz_dpa, intx_dpa, inty_dpa) |
This subroutine calculates analytical and nearly-analytical integrals of pressure anomalies across layers, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. More... | |
subroutine, public | int_spec_vol_dp_wright (T, S, p_t, p_b, alpha_ref, HI, dza, intp_dza, intx_dza, inty_dza, halo_size) |
This subroutine calculates analytical and nearly-analytical integrals in pressure across layers of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Bode's rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34. More... | |
Variables | |
real, parameter | a0 = 7.057924e-4 |
real, parameter | a1 = 3.480336e-7 |
real, parameter | a2 = -1.112733e-7 |
real, parameter | b0 = 5.790749e8 |
real, parameter | b1 = 3.516535e6 |
real, parameter | b2 = -4.002714e4 |
real, parameter | b3 = 2.084372e2 |
real, parameter | b4 = 5.944068e5 |
real, parameter | b5 = -9.643486e3 |
real, parameter | c0 = 1.704853e5 |
real, parameter | c1 = 7.904722e2 |
real, parameter | c2 = -7.984422 |
real, parameter | c3 = 5.140652e-2 |
real, parameter | c4 = -2.302158e2 |
real, parameter | c5 = -3.079464 |
subroutine, public mom_eos_wright::calculate_compress_wright | ( | real, dimension(:), intent(in) | T, |
real, dimension(:), intent(in) | S, | ||
real, dimension(:), intent(in) | pressure, | ||
real, dimension(:), intent(out) | rho, | ||
real, dimension(:), intent(out) | drho_dp, | ||
integer, intent(in) | start, | ||
integer, intent(in) | npts | ||
) |
This subroutine computes the in situ density of sea water (rho in units of kg/m^3) and the compressibility (drho/dp = C_sound^-2) (drho_dp in units of s2 m-2) from salinity (sal in psu), potential temperature (T in deg C), and pressure in Pa. It uses the expressions from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. Coded by R. Hallberg, 1/01.
[in] | t | Potential temperature relative to the surface in C. |
[in] | s | Salinity in PSU. |
[in] | pressure | Pressure in Pa. |
[out] | rho | In situ density in kg m-3. |
[out] | drho_dp | The partial derivative of density with pressure (also the inverse of the square of sound speed) in s2 m-2. |
[in] | start | The starting point in the arrays. |
[in] | npts | The number of values to calculate. |
Definition at line 232 of file MOM_EOS_Wright.F90.
References a0, a1, a2, b0, b1, b2, b3, b4, b5, c0, c1, c2, c3, c4, and c5.
Referenced by mom_eos::calculate_compress().
subroutine, public mom_eos_wright::calculate_density_array_wright | ( | real, dimension(:), intent(in) | T, |
real, dimension(:), intent(in) | S, | ||
real, dimension(:), intent(in) | pressure, | ||
real, dimension(:), intent(out) | rho, | ||
integer, intent(in) | start, | ||
integer, intent(in) | npts | ||
) |
This subroutine computes the in situ density of sea water (rho in units of kg/m^3) from salinity (S in psu), potential temperature (T in deg C), and pressure in Pa. It uses the expression from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. Coded by R. Hallberg, 7/00.
[in] | t | potential temperature relative to the surface in C. |
[in] | s | salinity in PSU. |
[in] | pressure | pressure in Pa. |
[out] | rho | in situ density in kg m-3. |
[in] | start | the starting point in the arrays. |
[in] | npts | the number of values to calculate. |
Definition at line 109 of file MOM_EOS_Wright.F90.
References a0, a1, a2, b0, b1, b2, b3, b4, b5, c0, c1, c2, c3, c4, and c5.
Referenced by calculate_density_scalar_wright().
subroutine, public mom_eos_wright::calculate_density_derivs_wright | ( | real, dimension(:), intent(in) | T, |
real, dimension(:), intent(in) | S, | ||
real, dimension(:), intent(in) | pressure, | ||
real, dimension(:), intent(out) | drho_dT, | ||
real, dimension(:), intent(out) | drho_dS, | ||
integer, intent(in) | start, | ||
integer, intent(in) | npts | ||
) |
[in] | t | Potential temperature relative to the surface in C. |
[in] | s | Salinity in PSU. |
[in] | pressure | Pressure in Pa. |
[out] | drho_dt | The partial derivative of density with potential temperature, in kg m-3 K-1. |
[out] | drho_ds | The partial derivative of density with salinity, in kg m-3 psu-1. |
[in] | start | The starting point in the arrays. |
[in] | npts | The number of values to calculate. |
Definition at line 145 of file MOM_EOS_Wright.F90.
References a0, a1, a2, b0, b1, b2, b3, b4, b5, c0, c1, c2, c3, c4, and c5.
subroutine, public mom_eos_wright::calculate_density_scalar_wright | ( | real, intent(in) | T, |
real, intent(in) | S, | ||
real, intent(in) | pressure, | ||
real, intent(out) | rho | ||
) |
This subroutine computes the in situ density of sea water (rho in units of kg/m^3) from salinity (S in psu), potential temperature (T in deg C), and pressure in Pa. It uses the expression from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. Coded by R. Hallberg, 7/00.
[in] | t | Potential temperature relative to the surface in C. |
[in] | s | Salinity in PSU. |
[in] | pressure | Pressure in Pa. |
[out] | rho | In situ density in kg m-3. |
Definition at line 69 of file MOM_EOS_Wright.F90.
References calculate_density_array_wright().
subroutine, public mom_eos_wright::calculate_specvol_derivs_wright | ( | real, dimension(:), intent(in) | T, |
real, dimension(:), intent(in) | S, | ||
real, dimension(:), intent(in) | pressure, | ||
real, dimension(:), intent(out) | dSV_dT, | ||
real, dimension(:), intent(out) | dSV_dS, | ||
integer, intent(in) | start, | ||
integer, intent(in) | npts | ||
) |
[in] | t | Potential temperature relative to the surface in C. |
[in] | s | Salinity in g/kg. |
[in] | pressure | Pressure in Pa. |
[out] | dsv_dt | The partial derivative of specific volume with potential temperature, in m3 kg-1 K-1. |
[out] | dsv_ds | The partial derivative of specific volume with salinity, in m3 kg-1 / (g/kg). |
[in] | start | The starting point in the arrays. |
[in] | npts | The number of values to calculate. |
Definition at line 186 of file MOM_EOS_Wright.F90.
References a1, a2, b0, b1, b2, b3, b4, b5, c0, c1, c2, c3, c4, and c5.
subroutine, public mom_eos_wright::int_density_dz_wright | ( | real, dimension(hii%isd:hii%ied,hii%jsd:hii%jed), intent(in) | T, |
real, dimension(hii%isd:hii%ied,hii%jsd:hii%jed), intent(in) | S, | ||
real, dimension(hii%isd:hii%ied,hii%jsd:hii%jed), intent(in) | z_t, | ||
real, dimension(hii%isd:hii%ied,hii%jsd:hii%jed), intent(in) | z_b, | ||
real, intent(in) | rho_ref, | ||
real, intent(in) | rho_0, | ||
real, intent(in) | G_e, | ||
type(hor_index_type), intent(in) | HII, | ||
type(hor_index_type), intent(in) | HIO, | ||
real, dimension(hio%isd:hio%ied,hio%jsd:hio%jed), intent(out) | dpa, | ||
real, dimension(hio%isd:hio%ied,hio%jsd:hio%jed), intent(out), optional | intz_dpa, | ||
real, dimension(hio%isdb:hio%iedb,hio%jsd:hio%jed), intent(out), optional | intx_dpa, | ||
real, dimension(hio%isd:hio%ied,hio%jsdb:hio%jedb), intent(out), optional | inty_dpa | ||
) |
This subroutine calculates analytical and nearly-analytical integrals of pressure anomalies across layers, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model.
[in] | t | Potential temperature relative to the surface |
[in] | s | Salinity in PSU. |
[in] | z_t | Height at the top of the layer in m. |
[in] | z_b | Height at the top of the layer in m. |
[in] | rho_ref | A mean density, in kg m-3, that is subtracted out to reduce the magnitude of each of the integrals. (The pressure is calucated as p~=-z*rho_0*G_e.) |
[in] | rho_0 | Density, in kg m-3, that is used to calculate the pressure (as p~=-z*rho_0*G_e) used in the equation of state. |
[in] | g_e | The Earth's gravitational acceleration, in m s-2. |
[out] | dpa | The change in the pressure anomaly across the |
[out] | intz_dpa | The integral through the thickness of the layer |
[out] | intx_dpa | The integral in x of the difference between the |
[out] | inty_dpa | The integral in y of the difference between the |
Definition at line 279 of file MOM_EOS_Wright.F90.
References a0, a1, a2, b0, b1, b2, b3, b4, b5, c0, c1, c2, c3, c4, and c5.
subroutine, public mom_eos_wright::int_spec_vol_dp_wright | ( | real, dimension(hi%isd:hi%ied,hi%jsd:hi%jed), intent(in) | T, |
real, dimension(hi%isd:hi%ied,hi%jsd:hi%jed), intent(in) | S, | ||
real, dimension(hi%isd:hi%ied,hi%jsd:hi%jed), intent(in) | p_t, | ||
real, dimension(hi%isd:hi%ied,hi%jsd:hi%jed), intent(in) | p_b, | ||
real, intent(in) | alpha_ref, | ||
type(hor_index_type), intent(in) | HI, | ||
real, dimension(hi%isd:hi%ied,hi%jsd:hi%jed), intent(out) | dza, | ||
real, dimension(hi%isd:hi%ied,hi%jsd:hi%jed), intent(out), optional | intp_dza, | ||
real, dimension(hi%isdb:hi%iedb,hi%jsd:hi%jed), intent(out), optional | intx_dza, | ||
real, dimension(hi%isd:hi%ied,hi%jsdb:hi%jedb), intent(out), optional | inty_dza, | ||
integer, intent(in), optional | halo_size | ||
) |
This subroutine calculates analytical and nearly-analytical integrals in pressure across layers of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Bode's rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.
[in] | t | Potential temperature relative to the surface |
[in] | s | Salinity in PSU. |
[in] | p_t | Pressure at the top of the layer in Pa. |
[in] | p_b | Pressure at the top of the layer in Pa. |
[in] | alpha_ref | A mean specific volume that is subtracted out to reduce the magnitude of each of the integrals, m3 kg-1.The calculation is mathematically identical with different values of alpha_ref, but this reduces the effects of roundoff. |
[out] | dza | The change in the geopotential anomaly across |
[out] | intp_dza | The integral in pressure through the layer of |
[out] | intx_dza | The integral in x of the difference between the |
[out] | inty_dza | The integral in y of the difference between the |
[in] | halo_size | The width of halo points on which to calculate dza. |
Definition at line 445 of file MOM_EOS_Wright.F90.
References a0, a1, a2, b0, b1, b2, b3, b4, b5, c0, c1, c2, c3, c4, and c5.
Referenced by mom_eos::int_specific_vol_dp().
|
private |
Definition at line 55 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 55 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 55 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 56 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 56 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 56 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 57 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 57 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 57 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 58 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 58 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 58 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 59 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 59 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().
|
private |
Definition at line 59 of file MOM_EOS_Wright.F90.
Referenced by calculate_compress_wright(), calculate_density_array_wright(), calculate_density_derivs_wright(), calculate_specvol_derivs_wright(), int_density_dz_wright(), and int_spec_vol_dp_wright().