Calculate Practical Salinity from Absolute Salinity, pressure, longitude, and latitude.
Arguments
- SA
Absolute Salinity [ g/kg ]. The valid range for most `gsw` functions is 0 to 42 g/kg.
- p
sea pressure [dbar], i.e. absolute pressure [dbar] minus 10.1325 dbar
- longitude
longitude in decimal degrees, positive to the east of Greenwich. (This is called
long
in the TEOS-10 Matlab code.)- latitude
latitude in decimal degrees, positive to the north of the equator. (This is called
lat
in the TEOS-10 Matlab code.)
Details
If SP is a matrix and if its dimensions correspond to the
lengths of longitude and latitude, then the latter are
converted to analogous matrices with expand.grid
.
Note: unlike the corresponding Matlab function, this does not return a flag indicating whether the location is in the ocean.
Implementation Note
This R function uses a wrapper to a C function contained within the GSW-C system as updated 2022-10-11 at https://github.com/TEOS-10/GSW-C with git commit `657216dd4f5ea079b5f0e021a4163e2d26893371`.
The C function uses data from the library/gsw_data_v3_0.mat
file provided in the GSW-Matlab source code, version 3.06-11.
Unfortunately, this version of the mat file is no longer displayed on the
TEOS-10.org website. Therefore, in the interests of making GSW-R be
self-contained, a copy was downloaded from
http://www.teos-10.org/software/gsw_matlab_v3_06_11.zip on 2022-05-25,
the .mat file was stored in the developer/create_data directory of
https://github.com/TEOS-10/GSW-R, and then the dataset used in GSW-R
was created based on that .mat file.
Please consult http://www.teos-10.org to learn more about the various TEOS-10 software systems.
See also
Other things related to salinity:
gsw_C_from_SP()
,
gsw_SA_from_SP()
,
gsw_SA_from_SP_Baltic()
,
gsw_SA_from_Sstar()
,
gsw_SP_from_C()
,
gsw_SP_from_SK()
,
gsw_SP_from_SR()
,
gsw_SP_from_Sstar()
,
gsw_SR_from_SP()
,
gsw_Sstar_from_SA()
,
gsw_Sstar_from_SP()
,
gsw_deltaSA_from_SP()
Examples
SA <- c(34.7118, 34.8915, 35.0256, 34.8472, 34.7366, 34.7324)
p <- c( 10, 50, 125, 250, 600, 1000)
lat <- c( 4, 4, 4, 4, 4, 4)
long <- c( 188, 188, 188, 188, 188, 188)
SP <- gsw_SP_from_SA(SA,p,long,lat)
stopifnot(all.equal(SP, c(34.548721553448317, 34.727477488096639, 34.860554877708005,
34.680971112271791, 34.567971663653388, 34.560036751118204)))