Learn R Programming

oce (version 0.1-76)

sw.theta: Seawater potential temperature

Description

Compute $\theta$, the potential temperature of seawater.

Usage

sw.theta(S, t=NULL, p=NULL, pref=0, method=c("UNESCO1983","Bryden1973"))

Arguments

S
either salinity [PSU] (in which case t and p must be provided) or a ctd object (in which case S, t and p are determined from the object, and must no
t
in-situ temperature [$^\circ$C]
p
pressure [dbar]
pref
reference pressure [dbar]
method
algorithm to be used (see details)

Value

  • Potential temperature [$^\circ$C] of seawater.

Details

If the first argument is a ctd object, then salinity, temperature and pressure values are extracted from it, and used for the calculation.

The potential temperature is defined to be the temperature that a water parcel of salinity S, in-situ temperature t and pressure p would have if were to be moved adiabatically to a location with pressure pref. This quantity is commonly denoted $\theta(S,t,p,p_{ref})$ in the oceanographic literature.

The "Bryden1973" method does not use the reference pressure, since it is set up to approximate potential temperature referenced to the surface.

For general use, the "UNESCO1983" method is preferable, since it permits calculation for arbitrary reference pressure. The UNESCO formula is derived from Bryden's earlier method, as Fofonoff et al. (1983) explain.

This is not the place to discuss the two methods in detail, but users may note from the example that the two typically yield values that agree to a few millidegrees.

References

Bryden, H. L., 1973. New polynomials for thermal expansion, adiabatic temperature gradient and potential temperature of seawater, Deep-Sea Res., 20, 401-408.

Fofonoff, P. and R. C. Millard Jr, 1983. Algorithms for computation of fundamental properties of seawater. Unesco Technical Papers in Marine Science, 44, 53 pp.

See Also

The corresponding potential density anomaly $\sigma_\theta$ can be calculated with sw.sigma.theta.

Examples

Run this code
library(oce)
print(sw.theta(35, 13, 1000)) # 12.858

print(sw.theta(40,40,10000,0,"UNESCO1983")) # 36.89073 (Fofonoff et al., 1983)
	
# Demonstrate that the methods agree to a couple of
# millidegrees over a typical span of values
S <- c(30,30,38,38)
T <- c(-2,-2,30,30)
p <- rep(1000,4)                                   
print(max(abs(sw.theta(S,T,p) - sw.theta(S,T,p,0,"UNESCO1983"))))

Run the code above in your browser using DataLab