aquaenv {AquaEnv}R Documentation

aquaenv

Description

PUBLIC function: the main function of the package AquaEnv: creates an object of class aquaenv

Usage

aquaenv(S, t, p=pmax((P-Pa), gauge_p(d, lat, Pa)),
        P=Pa, Pa=1.01325, d=0, lat=0,
        SumCO2=0, SumNH4=0, SumH2S=0, SumH3PO4=0,
        SumSiOH4=0, SumHNO3=0, SumHNO2=0, SumBOH3=NULL,
        SumH2SO4=NULL, SumHF=NULL, TA=NULL, pH=NULL, fCO2=NULL, CO2=NULL,
        speciation=TRUE, dsa=FALSE, ae=NULL, from.data.frame=FALSE,
        SumH2SO4_Koffset=0, SumHF_Koffset=0, revelle=FALSE, skeleton=FALSE,
        k_w=NULL, k_co2=NULL, k_hco3=NULL, k_boh3=NULL, k_hso4=NULL,
        k_hf=NULL, k1k2="lueker", khf="dickson", khso4="dickson", 
        fCO2atm=0.000400, fO2atm=0.20946)

Arguments

S

salinity in practical salinity units (i.e. no unit)

t

temperature in degrees centigrade

p

gauge pressure (total pressure minus atmospheric pressure) in bars, standard is calculated either from the given P, or the given d, lat, and Pa

P

total pressure in bars, standard: Pa (at the surface)

Pa

atmospheric pressure in bars, standard: 1 atm (at sea-level)

d

depth below the surface in meters, standard: 0 (at the surface)

lat

latitude in degrees (-90 to +90) to calculate the gravitational constant g for calculating the water depth from the pressure and vice versa, standard: 0

SumCO2

total carbonate concentration in mol/kg-solution, if NULL is supplied it is calculated

SumNH4

total ammonium concentration in mol/kg-solution, optional

SumH2S

total sulfide concentration in mol/kg-solution, optional

SumH3PO4

total phosphate concentration in mol/kg-solution, optional

SumSiOH4

total silicate concentration in mol/kg-solution, optional

SumHNO3

total nitrate concentration in mol/kg-solution, optional

SumHNO2

total nitrite concentration in mol/kg-solution, optional

SumBOH3

total borate concentration in mol/kg-solution, calculated from S if not supplied

SumH2SO4

total sulfate concentration in mol/kg-solution, calculated from S if not supplied

SumHF

total fluoride concentration in mol/kg-solution, calculated from S if not supplied

TA

total alkalinity in mol/kg-solution, if supplied, pH will be calculated

pH

pH on the free proton concentration scale, if supplied, total alkalinity will be calculated

fCO2

fugacity of CO2 in the water in atm (i.e. the fugacity of CO2 in a small volume of air fully equilibrated with a sufficiently large sample of water), can be used with either [TA], pH, or [CO2] to define the system

CO2

concentration of CO2, can be used with either [TA], pH, or fCO2 to define the system

speciation

flag: TRUE = full speciation is calculated

dsa

flag: TRUE = all information necessary to build a pH model with the direct substitution approach (DSA, Hofmann2008) is calculated

ae

either an object of class aquaenv used for the cloning functionality or a dataframe used for the from.data.frame functionality. Note that for cloning the desired k1k2 and khf values need to be specified! (otherwise the default values are used for the cloned object)

from.data.frame

flag: TRUE = the object of class aquaenv is built from the data frame supplied in ae

SumH2SO4_Koffset

only used internally to calculate dTAdKdKdSumH2SO4

SumHF_Koffset

only used internally to calculate dTAdKdKdSumHF

revelle

flag: TRUE = the revelle factor is numerically calculated. We do however strongly encourage to use the analytical calculation from BufferFactors$RF

skeleton

flag: TRUE = a reduced amount of information is calculated yielding a smaller object of type aquaenv

k_w

a fixed K\_W can be specified

k_co2

a fixed K\_CO2 can be specified; used for TA fitting: give a K\_CO2 and NOT calculate it from T and S: i.e. K\_CO2 can be fitted in the routine as well

k_hco3

a fixed K\_HCO3 can be specified

k_boh3

a fixed K\_BOH3 can be specified

k_hso4

a fixed K\_HSO4 can be specified

k_hf

a fixed K\_HF can be specified

k1k2

either "lueker" (default, Lueker2000), "roy" (Roy1993a), or "millero" (Millero2006) for K\_CO2 and K\_HCO3.

khf

either "dickson" (default, Dickson1979a) or "perez" (Perez1987a) for K\_HF

khso4

either "dickson" (default, Dickson1990) or "khoo" (Khoo1977) for K\_HSO4

fCO2atm

atmospheric fugacity of CO2 in atm, default = 0.000400 atm

fO2atm

atmospheric fugacity of O2 in atm, default = 0.20946 atm

Value

a list containing: "S" "t" "p" "T" "Cl" "I" "P" "Pa" "d" "density" "SumCO2" "SumNH4" "SumH2S" "SumHNO3" "SumHNO2" "SumH3PO4" "SumSiOH4" "SumBOH3" "SumH2SO4" "SumHF" "Br" "ClConc" "Na" "Mg" "Ca" "K" "Sr" "molal2molin" "free2tot" "free2sws" "tot2free" "tot2sws" "sws2free" "sws2tot" "K0\_CO2" "K0\_O2" "fCO2atm" "fO2atm" "CO2\_sat" "O2\_sat" "K\_W" "K\_HSO4" "K\_HF" "K\_CO2" "K\_HCO3" "K\_BOH3" "K\_NH4" "K\_H2S" "K\_H3PO4" "K\_H2PO4" "K\_HPO4" "K\_SiOH4" "K\_SiOOH3" "K\_HNO2" "K\_HNO3" "K\_H2SO4" "K\_HS" "Ksp\_calcite" "Ksp\_aragonite" "TA" "pH" "fCO2" "CO2" "HCO3" "CO3" "BOH3" "BOH4" "OH" "H3PO4" "H2PO4" "HPO4" "PO4" "SiOH4" "SiOOH3" "SiO2OH2" "H2S" "HS" "S2min" "NH4" "NH3" "H2SO4" "HSO4" "SO4" "HF" "F" "HNO3" "NO3" "HNO2" "NO2" "omega\_calcite" "omega\_aragonite" "revelle" "c1" "c2" "c3" "dTAdSumCO2" "b1" "b2" "dTAdSumBOH3" "so1" "so2" "so3" "dTAdSumH2SO4" "f1" "f2" "dTAdSumHF" "dTAdH" "dTAdKdKdS" "dTAdKdKdT" "dTAdKdKdd" "dTAdKdKdSumH2SO4" "dTAdKdKdSumHF" or a subset of this set. Please consult the vignette of AquaEnv for more details

Author(s)

Andreas F. Hofmann. Maintained by Karline Soetaert (Karline.Soetaert@nioz.nl).

Examples

## Not run: 
############################
# Minimal aquaenv definition
############################
ae <- aquaenv(S=30, t=15)
ae$K_CO2

ae$Ksp_calcite
ae$Ksp_aragonite

ae <- aquaenv(S=30, t=15, p=10)
ae <- aquaenv(S=30, t=15, P=11)
ae <- aquaenv(S=30, t=15, d=100)
ae <- aquaenv(S=30, t=15, d=100, Pa=0.5)
ae$K_CO2

ae$Ksp_calcite
ae$Ksp_aragonite

ae


########################################################
# Defining the complete aquaenv system in different ways
########################################################
S      <- 30
t      <- 15
p      <- gauge_p(d=10)  # ~ p <- 0.1*10*1.01325
SumCO2 <- 0.0020
pH     <- 8
TA     <- 0.002140798
fCO2   <- 0.0005326744
CO2    <- 2.051946e-05

ae <- aquaenv(S, t, p, SumCO2=SumCO2, pH=pH)
ae$TA

ae <- aquaenv(S, t, p, SumCO2=SumCO2, TA=TA)
ae$pH

ae <- aquaenv(S, t, p, SumCO2=SumCO2, CO2=CO2)
ae$pH

ae <- aquaenv(S, t, p, SumCO2=SumCO2, fCO2=fCO2)
ae$pH

ae <- aquaenv(S, t, p, SumCO2=SumCO2, CO2=CO2, fCO2=fCO2)
ae <- aquaenv(S, t, p, SumCO2=SumCO2, pH=pH, TA=TA)
ae <- aquaenv(S, t, p, SumCO2=SumCO2, pH=pH, CO2=CO2)
ae <- aquaenv(S, t, p, SumCO2=SumCO2, pH=pH, fCO2=fCO2)
ae <- aquaenv(S, t, p, SumCO2=SumCO2, TA=TA, CO2=CO2)
ae <- aquaenv(S, t, p, SumCO2=SumCO2, TA=TA, fCO2=fCO2)


################################################################
# Cloning the aquaenv system: 1 to 1 and with different pH or TA
################################################################
S      <- 30
t      <- 15
SumCO2 <- 0.0020
TA     <- 0.00214


ae <- aquaenv(S, t, SumCO2=SumCO2, TA=TA)

aeclone1 <- aquaenv(ae=ae)

pH <- 9

aeclone2 <- aquaenv(ae=ae, pH=pH)

TA <- 0.002

aeclone3 <- aquaenv(ae=ae, TA=TA)

ae$pH
aeclone1$pH
aeclone2$TA
aeclone3$pH



#########################################################################
# Vectors as input variables (only ONE input variable may be a vector)
# (with full output: including the Revelle factor and the DSA properties)
#########################################################################
SumCO2 <- 0.0020
pH     <- 8

S      <- 30
t      <- 1:15
p      <- gauge_p(10)
ae <- aquaenv(S, t, p, SumCO2=SumCO2, pH=pH, revelle=TRUE, dsa=TRUE)
plot(ae, xval=t, xlab="T/(deg C)", newdevice=FALSE)

S  <- 1:30
t  <- 15
ae <- aquaenv(S, t, p, SumCO2=SumCO2, pH=pH, revelle=TRUE, dsa=TRUE)
plot(ae, xval=S, xlab="S", newdevice=FALSE)

S  <- 30
p  <- gauge_p(seq(1,1000, 100))
ae <- aquaenv(S, t, p, SumCO2=SumCO2, pH=pH, revelle=TRUE, dsa=TRUE)
plot(ae, xval=p, xlab="gauge pressure/bar", newdevice=FALSE)



TA <- 0.0023

S  <- 30
t  <- 1:15
d  <- gauge_p(10)
ae <- aquaenv(S, t, p, SumCO2=SumCO2, TA=TA, revelle=TRUE, dsa=TRUE)
plot(ae, xval=t, xlab="T/(deg C)", newdevice=FALSE)

S  <- 1:30
t  <- 15
ae <- aquaenv(S, t, p, SumCO2=SumCO2, TA=TA, revelle=TRUE, dsa=TRUE)
plot(ae, xval=S, xlab="S", newdevice=FALSE)

S  <- 30
p  <- gauge_p(seq(1,1000, 100))
ae <- aquaenv(S, t, p, SumCO2=SumCO2, TA=TA, revelle=TRUE, dsa=TRUE)
plot(ae, xval=p, xlab="gauge pressure/bar", newdevice=FALSE)



##################################################################
# Calculating SumCO2 by giving a constant  pH&CO2, pH&fCO2, pH&TA,
# TA&CO2, or TA&fCO2
##################################################################
fCO2   <- 0.0006952296
CO2    <- 2.678137e-05
pH     <- 7.888573
TA     <- 0.0021

S  <- 30
t  <- 15
p  <- gauge_p(10)

ae <- aquaenv(S, t, p, SumCO2=NULL, pH=pH, CO2=CO2, dsa=TRUE, revelle=TRUE)
ae$SumCO2
ae$revelle
ae$dTAdH

ae <- aquaenv(S, t, p, SumCO2=NULL, pH=pH, fCO2=fCO2)
ae$SumCO2

ae <- aquaenv(S, t, p, SumCO2=NULL, pH=pH, TA=TA)
ae$SumCO2

ae <- aquaenv(S, t, p, SumCO2=NULL, TA=TA, CO2=CO2)
ae$SumCO2

ae <- aquaenv(S, t, p, SumCO2=NULL, TA=TA, fCO2=fCO2)
ae$SumCO2


t  <- 1:15
ae <- aquaenv(S, t, p, SumCO2=NULL, pH=pH, CO2=CO2)
plot(ae, xval=t, xlab="T/(deg C)", mfrow=c(9,10), newdevice=FALSE)

ae <- aquaenv(S, t, p, SumCO2=NULL, pH=pH, CO2=CO2, revelle=TRUE, dsa=TRUE)
plot(ae, xval=t, xlab="T/(deg C)", newdevice=FALSE)

S  <- 1:30
t  <- 15
ae <- aquaenv(S, t, p, SumCO2=NULL, pH=pH, fCO2=fCO2, revelle=TRUE, dsa=TRUE)
plot(ae, xval=S, xlab="S", newdevice=FALSE)

S  <- 30
p  <- gauge_p(seq(1,1000, 100))
ae <- aquaenv(S, t, p, SumCO2=NULL, pH=pH, TA=TA, revelle=TRUE, dsa=TRUE)
plot(ae, xval=p, xlab="gauge pressure/bar", newdevice=FALSE)


## End(Not run)

[Package AquaEnv version 1.0-4 Index]