Calculates specific volume of sea water from T, S and P.
Definition at line 65 of file MOM_EOS.F90.
|
subroutine | calculate_spec_vol_scalar (T, S, pressure, specvol, EOS, spv_ref) |
| Calls the appropriate subroutine to calculate specific volume of sea water for scalar inputs. More...
|
|
subroutine | calculate_spec_vol_array (T, S, pressure, specvol, start, npts, EOS, spv_ref) |
| Calls the appropriate subroutine to calculate the specific volume of sea water for 1-D array inputs. More...
|
|
◆ calculate_spec_vol_array()
subroutine mom_eos::calculate_spec_vol::calculate_spec_vol_array |
( |
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, |
|
|
type(eos_type), pointer |
EOS, |
|
|
real, intent(in), optional |
spv_ref |
|
) |
| |
|
private |
Calls the appropriate subroutine to calculate the specific volume of sea water for 1-D array inputs.
- Parameters
-
[in] | t | potential temperature relative to the surface [degC]. |
[in] | s | salinity [ppt]. |
[in] | pressure | pressure [Pa]. |
[out] | specvol | in situ specific volume [kg m-3]. |
[in] | start | the starting point in the arrays. |
[in] | npts | the number of values to calculate. |
| eos | Equation of state structure |
[in] | spv_ref | A reference specific volume [m3 kg-1]. |
Definition at line 240 of file MOM_EOS.F90.
240 real,
dimension(:),
intent(in) :: T
242 real,
dimension(:),
intent(in) :: S
243 real,
dimension(:),
intent(in) :: pressure
244 real,
dimension(:),
intent(out) :: specvol
245 integer,
intent(in) :: start
246 integer,
intent(in) :: npts
247 type(EOS_type),
pointer :: EOS
248 real,
optional,
intent(in) :: spv_ref
250 real,
dimension(size(specvol)) :: rho
253 if (.not.
associated(eos))
call mom_error(fatal, &
254 "calculate_spec_vol_array called with an unassociated EOS_type EOS.")
256 select case (eos%form_of_EOS)
258 call calculate_spec_vol_linear(t, s, pressure, specvol, start, npts, &
259 eos%rho_T0_S0, eos%drho_dT, eos%drho_dS, spv_ref)
261 call calculate_spec_vol_unesco(t, s, pressure, specvol, start, npts, spv_ref)
263 call calculate_spec_vol_wright(t, s, pressure, specvol, start, npts, spv_ref)
265 call calculate_spec_vol_teos10(t, s, pressure, specvol, start, npts, spv_ref)
267 call calculate_density_nemo (t, s, pressure, rho, start, npts)
268 if (
present(spv_ref))
then
269 specvol(:) = 1.0 / rho(:) - spv_ref
271 specvol(:) = 1.0 / rho(:)
274 call mom_error(fatal, &
275 "calculate_spec_vol_array: EOS%form_of_EOS is not valid.")
◆ calculate_spec_vol_scalar()
subroutine mom_eos::calculate_spec_vol::calculate_spec_vol_scalar |
( |
real, intent(in) |
T, |
|
|
real, intent(in) |
S, |
|
|
real, intent(in) |
pressure, |
|
|
real, intent(out) |
specvol, |
|
|
type(eos_type), pointer |
EOS, |
|
|
real, intent(in), optional |
spv_ref |
|
) |
| |
|
private |
Calls the appropriate subroutine to calculate specific volume of sea water for scalar inputs.
- Parameters
-
[in] | t | Potential temperature referenced to the surface [degC] |
[in] | s | Salinity [ppt] |
[in] | pressure | Pressure [Pa] |
[out] | specvol | specific volume (in-situ if pressure is local) [m3 kg-1] |
| eos | Equation of state structure |
[in] | spv_ref | A reference specific volume [m3 kg-1]. |
Definition at line 200 of file MOM_EOS.F90.
200 real,
intent(in) :: T
201 real,
intent(in) :: S
202 real,
intent(in) :: pressure
203 real,
intent(out) :: specvol
204 type(EOS_type),
pointer :: EOS
205 real,
optional,
intent(in) :: spv_ref
209 if (.not.
associated(eos))
call mom_error(fatal, &
210 "calculate_spec_vol_scalar called with an unassociated EOS_type EOS.")
212 select case (eos%form_of_EOS)
214 call calculate_spec_vol_linear(t, s, pressure, specvol, &
215 eos%rho_T0_S0, eos%drho_dT, eos%drho_dS, spv_ref)
217 call calculate_spec_vol_unesco(t, s, pressure, specvol, spv_ref)
219 call calculate_spec_vol_wright(t, s, pressure, specvol, spv_ref)
221 call calculate_spec_vol_teos10(t, s, pressure, specvol, spv_ref)
223 call calculate_density_nemo(t, s, pressure, rho)
224 if (
present(spv_ref))
then
225 specvol = 1.0 / rho - spv_ref
230 call mom_error(fatal, &
231 "calculate_spec_vol_scalar: EOS is not valid.")
The documentation for this interface was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/mom6-doctesting/checkouts/brokenbreathe/src/equation_of_state/MOM_EOS.F90