Compute the in situ specific volume of sea water (in [m3 kg-1]), or an anomaly with respect to a reference specific volume, from salinity (in psu), potential temperature (in deg C), and pressure [Pa], using the expressions from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740.
Definition at line 39 of file MOM_EOS_Wright.F90.
|
subroutine | calculate_spec_vol_scalar_wright (T, S, pressure, specvol, spv_ref) |
| This subroutine computes 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 Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. If spv_ref is present, specvol is an anomaly from spv_ref. More...
|
|
subroutine | calculate_spec_vol_array_wright (T, S, pressure, specvol, start, npts, spv_ref) |
| This subroutine computes 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 Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. If spv_ref is present, specvol is an anomaly from spv_ref. More...
|
|
subroutine mom_eos_wright::calculate_spec_vol_wright::calculate_spec_vol_array_wright |
( |
real, dimension(:), intent(in) |
T, |
|
|
real, dimension(:), intent(in) |
S, |
|
|
real, dimension(:), intent(in) |
pressure, |
|
|
real, dimension(:), intent(out) |
specvol, |
|
|
integer, intent(in) |
start, |
|
|
integer, intent(in) |
npts, |
|
|
real, intent(in), optional |
spv_ref |
|
) |
| |
|
private |
This subroutine computes 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 Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. If spv_ref is present, specvol is an anomaly from spv_ref.
- Parameters
-
[in] | t | potential temperature relative to the surface [degC]. |
[in] | s | salinity [PSU]. |
[in] | pressure | pressure [Pa]. |
[out] | specvol | in situ specific volume [m3 kg-1]. |
[in] | start | the starting point in the arrays. |
[in] | npts | the number of values to calculate. |
[in] | spv_ref | A reference specific volume [m3 kg-1]. |
Definition at line 172 of file MOM_EOS_Wright.F90.
172 real,
dimension(:),
intent(in) :: T
174 real,
dimension(:),
intent(in) :: S
175 real,
dimension(:),
intent(in) :: pressure
176 real,
dimension(:),
intent(out) :: specvol
177 integer,
intent(in) :: start
178 integer,
intent(in) :: npts
179 real,
optional,
intent(in) :: spv_ref
182 real :: al0, p0, lambda
185 do j=start,start+npts-1
186 al0 = (a0 + a1*t(j)) +a2*s(j)
187 p0 = (b0 + b4*s(j)) + t(j) * (b1 + t(j)*((b2 + b3*t(j))) + b5*s(j))
188 lambda = (c0 +c4*s(j)) + t(j) * (c1 + t(j)*((c2 + c3*t(j))) + c5*s(j))
190 if (
present(spv_ref))
then
191 specvol(j) = (lambda + (al0 - spv_ref)*(pressure(j) + p0)) / (pressure(j) + p0)
193 specvol(j) = (lambda + al0*(pressure(j) + p0)) / (pressure(j) + p0)
subroutine mom_eos_wright::calculate_spec_vol_wright::calculate_spec_vol_scalar_wright |
( |
real, intent(in) |
T, |
|
|
real, intent(in) |
S, |
|
|
real, intent(in) |
pressure, |
|
|
real, intent(out) |
specvol, |
|
|
real, intent(in), optional |
spv_ref |
|
) |
| |
|
private |
This subroutine computes 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 Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740. If spv_ref is present, specvol is an anomaly from spv_ref.
- Parameters
-
[in] | t | potential temperature relative to the surface [degC]. |
[in] | s | salinity [PSU]. |
[in] | pressure | pressure [Pa]. |
[out] | specvol | in situ specific volume [m3 kg-1]. |
[in] | spv_ref | A reference specific volume [m3 kg-1]. |
Definition at line 151 of file MOM_EOS_Wright.F90.
151 real,
intent(in) :: T
152 real,
intent(in) :: S
153 real,
intent(in) :: pressure
154 real,
intent(out) :: specvol
155 real,
optional,
intent(in) :: spv_ref
158 real,
dimension(1) :: T0, S0, pressure0, spv0
160 t0(1) = t ; s0(1) = s ; pressure0(1) = pressure
162 call calculate_spec_vol_array_wright(t0, s0, pressure0, spv0, 1, 1, spv_ref)