Compute the dynamic height of a column of seawater.
swDynamicHeight(
x,
referencePressure = 2000,
subdivisions = 500,
rel.tol = .Machine$double.eps^0.25,
eos = getOption("oceEOS", default = "gsw")
)
a section object.
reference pressure (dbar). If this exceeds the
highest pressure supplied to swDynamicHeight()
, then that highest
pressure is used, instead of the supplied value of
referencePressure
.
number of subdivisions for call to
integrate()
. (The default value is considerably larger than the
default for integrate()
, because otherwise some test profiles
failed to integrate.
absolute tolerance for call to integrate()
. Note
that this call is made in scaled coordinates, i.e. pressure is divided by
its maximum value, and dz/dp is also divided by its maximum.
equation of state, either "unesco"
or "gsw"
.
In the first form, a list containing distance
, the distance
(km( from the first station in the section and height
, the dynamic
height (m). In the second form, a single value, containing the
dynamic height (m).
If the first argument is a section
, then dynamic height is calculated
for each station within a section, and returns a list containing distance
along the section along with dynamic height.
If the first argument is a ctd
, then this returns just a single
value, the dynamic height.
If eos="unesco"
, processing is as follows. First, a piecewise-linear
model of the density variation with pressure is developed using
stats::approxfun()
. (The option rule=2
is used to
extrapolate the uppermost density up to the surface, preventing a possible a
bias for bottle data, in which the first depth may be a few metres below the
surface.) A second function is constructed as the density of water with
salinity 35PSU, temperature of 0\(^\circ\)C, and pressure as in the
ctd
. The difference of the reciprocals of these densities, is then
integrated with stats::integrate()
with pressure limits 0
to referencePressure
. (For improved numerical results, the variables
are scaled before the integration, making both independent and dependent
variables be of order one.)
If eos="gsw"
, gsw::gsw_geo_strf_dyn_height()
is used
to calculate a result in m^2/s^2, and this is divided by
9.7963\(m/s^2\).
If pressures are out of order, the data are sorted. If any pressure
is repeated, only the first level is used.
If there are under 4 remaining distinct
pressures, NA
is returned, with a warning.
Gill, A.E., 1982. Atmosphere-ocean Dynamics, Academic Press, New York, 662 pp.
Other functions that calculate seawater properties:
T68fromT90()
,
T90fromT48()
,
T90fromT68()
,
computableWaterProperties()
,
locationForGsw()
,
swAbsoluteSalinity()
,
swAlphaOverBeta()
,
swAlpha()
,
swBeta()
,
swCSTp()
,
swConservativeTemperature()
,
swDepth()
,
swLapseRate()
,
swN2()
,
swPressure()
,
swRho()
,
swRrho()
,
swSCTp()
,
swSR()
,
swSTrho()
,
swSigma0()
,
swSigma1()
,
swSigma2()
,
swSigma3()
,
swSigma4()
,
swSigmaTheta()
,
swSigmaT()
,
swSigma()
,
swSoundAbsorption()
,
swSoundSpeed()
,
swSpecificHeat()
,
swSpice()
,
swSstar()
,
swTFreeze()
,
swTSrho()
,
swThermalConductivity()
,
swTheta()
,
swViscosity()
,
swZ()