Learn R Programming

marelac (version 2.1.11)

convert_salinity: Practical - Absolute Salinity Conversions

Description

Conversion from practical to absolute salinity and vice versa.

Usage

convert_PStoAS(S = 35, p = max(0, P - 1.013253), P = 1.013253,
  lat = NULL, lon = NULL, DSi = NULL,
  Ocean = c("Global", "Atlantic", "Pacific", "Indian", "Southern"))

convert_AStoPS(S = 35, p = max(0, P - 1.013253), P = 1.013253, lat = NULL, lon = NULL, DSi = NULL, Ocean = c("Global","Atlantic","Pacific","Indian","Southern"))

Value

The absolute salinity (convert_PStoAS) or practical salinity (convert_AStoPS).

Arguments

S

Salinity, either practical salinity (convert_PStoAS), dimensionless or absolute salinity (convert_AStoPS, g/kg)

p

gauge or applied pressure, pressure referenced against the local atmospheric pressure, bar

P

true pressure, bar

lat

latitude (-90 to +90)

lon

longitude (0 to 360)

DSi

the silicate concentration, in micromol/kg

Ocean

the ocean in which the measurement was taken; only used if DSi is not NULL

Author

Karline Soetaert <karline.soetaert@nioz.nl>

Details

Absolute salinity (g kg-1) is estimated from Practical salinity as:

AS= 35.16504 /35 * PS + delt()

where delt is the absolute salinity anomaly. There are two ways in which to estimate the salinity anomaly

1. If DSi is not given a value, then the anomaly is estimated as a function of longitude lon, latitude lat and pressure p, using the lookup table as in sw_sfac.

2. If DSi is given a value, then a regression on it is used, based on the values of Ocean and -except for the "global" ocean- the latitute lat:

"Global"

a global estimate is used,

delt= 9.824e-5 *DSi,

"Southern"

the Southern Ocean (lat < -30),

delt= 7.4884e-5 *DSi,

"Pacific"

the Pacific Ocean ,

delt= 7.4884e-5 *(1 + 0.3622[lat/30 + 1])*DSi,

"Indian"

the Indian Ocean ,

delt= 7.4884e-5 *(1 + 0.3861[lat/30 + 1])*DSi,

"Atlantic"

the Atlantic Ocean ,

delt= 7.4884e-5 *(1 + 1.0028[lat/30 + 1])*DSi,

Note that for the Pacific, Indian and Atlantic Ocean regression, the latitude is needed. If lat is NULL then the Global regression will be used.

References

Millero FJ, Feistel R, Wright DG and McDougall TJ, 2008. The composition of Standard Seawater and the definition of the Reference-Composition Salinity Scale, Deep-Sea Res. I, 55, 50-72.

McDougall TJ, Jackett DR and Millero FJ, 2009. An algorithm for estimating Absolute Salinity in the global ocean. Ocean Science Discussions 6, 215-242. http://www.ocean-sci-discuss.net/6/215/2009/

Uses the Fortran code written by David Jackett. http://www.teos-10.org/

See Also

convert_RtoS, convert_StoR, convert_StoCl, convert_p, convert_T,

Examples

Run this code
# check values: should be 35.7
convert_PStoAS(S = 35.52764437773386, p = 102.3, lon = 201, lat = -21)

# check values: should be 35.52764437773386
convert_AStoPS(S = 35.7, p = 102.3, lon = 201, lat = -21)

#
convert_PStoAS(S = 35)
convert_AStoPS(S = 35)
convert_PStoAS(S = 35, lat = 10, lon = 10, p = 0)

# Based on Si concentration
DSi <- seq(from = 0, to = 200, by = 10)
Global   <-  convert_PStoAS(30, DSi = DSi, Ocean = "Global")
Atlantic <-  convert_PStoAS(30, DSi = DSi, Ocean = "Atlantic", lat = 0)
Pacific  <-  convert_PStoAS(30, DSi = DSi, Ocean = "Pacific", lat = 0)
Indian   <-  convert_PStoAS(30, DSi = DSi, Ocean = "Indian", lat = 0)
Southern <-  convert_PStoAS(30, DSi = DSi, Ocean = "Southern")

matplot(x = DSi, y = cbind(Global, Atlantic, Pacific, Indian, Southern),
  pch = 1, xlab = "DSi, micromol/kg", ylab = "Absolute salinity (PS=30)")
legend("topleft",c("Global", "Atlantic", "Pacific", "Indian", "Southern"),
       col = 1:5, pch = 1)

Run the code above in your browser using DataLab