Learn R Programming

seacarb (version 2.3.1)

buffer: Buffer parameters of the seawater carbonate system

Description

Returns buffer parameters of the seawater carbonate system.

Usage

buffer(flag, var1, var2, S=35, T=25, P=0, Pt=0, Sit=0, k1k2='l', 
	kf='pf', pHscale="T")

Arguments

flag
select the couple of variables available. The flags which can be used are: flag = 1 pH and CO2 given flag = 2 CO2 and HCO3 given flag = 3 CO2 and CO3 given flag = 4 CO2 and ALK given flag = 5 CO2 and DIC given f
var1
enter value of the first variable in mol/kg, except for pH and for pCO2 in $\mu$atm
var2
enter value of the second variable in mol/kg, except for pH
S
Salinity
T
Temperature in degrees Celsius
P
Hydrostatic pressure in bar (surface = 0)
Pt
Concentration of total phosphate in mol/kg
Sit
Concentration of total silicate in mol/kg
k1k2
"l" for using K1 and K2 from Lueker et al. (2000) and "r" for using K1 and K2 from Roy et al. (1993), default is "l"
kf
"pf" for using Kf from Perez and Fraga (1987) and "dg" for using Kf from Dickson and Riley (1979), default is "pf"
pHscale
choice of pH scale: "T" for the total scale, "F" for the free scale and "SWS" for using the seawater scale, default is "T" (total scale)

Value

  • The function returns a data frame containing the following columns:
  • PhiDPhiD, chemical buffer factor (dpH/d[DIC]); input/output of dissolved CO2 (unit pH per mol/kg)
  • BetaDBetaD, homogeneous or Revelle buffer factor (dln(pCO2)/dln[DIC]); input/output of dissolved CO2
  • PiDPiD, chemical buffer factor (dpCO2/d[DIC]); input/output of dissolved CO2 ($\mu atm$ per mol/kg)
  • PhiBPhiB, chemical buffer factor (dpH/d[DIC]); from input/output of bicarbonate (unit pH per mol/kg)
  • BetaBBetaB, homogeneous buffer factor (dln(pCO2)/dln[DIC]); input/output of bicarbonate
  • PiBPiB, chemical buffer factor (dpCO2/d[DIC]); input/output of dissolved CO2 ($\mu atm$ per mol/kg)
  • PhiCPhiC, chemical buffer factor (dpH/d[DIC]); input/output of carbonate (unit pH per mol/kg)
  • BetaCBetaC, homogeneous buffer factor (dln(pCO2)/dln[DIC]); input/output of carbonate
  • PiCPiC, chemical buffer factor (dpCO2/d[DIC]); input/output of carbonate ($\mu atm$ per mol/kg)
  • PhiHPhiH, chemical buffer factor (dpH/d[ALK]); input/output of strong acid (unit pH per mol/kg)
  • PiHPiH, chemical buffer factor (dpCO2/d[ALK]); input/output of strong acid ($\mu atm$ per mol/kg)

encoding

latin1

Details

The arguments can be given as a unique number or as vectors. If the lengths of the vectors are different, the longer vector is retained and only the first value of the other vectors is used. It is recommended to use either vectors with the same dimension or one vector for one argument and numbers for the other arguments.

References

Frankignoulle, M. 1994 A complete set of buffer factors for acid/base CO2 system in seawater. Journal of Marine Systems 5, 111-118. Lueker, T. J. Dickson, A. G. and Keeling, C. D. 2000 Ocean pCO2 calculated from dissolved inorganic carbon, alkalinity, and equations for K1 and K2: validation based on laboratory measurements of CO2 in gas and seawater at equilibrium. Marine Chemistry 70 105-119. Perez, F. F. and Fraga, F. 1987 Association constant of fluoride and hydrogen ions in seawater. Marine Chemistry 21, 161-168. Roy, R. N. Roy, L. N. Vogel, K. M. Porter-Moore, C. Pearson, T. Good C. E., Millero F. J. and Campbell D. M., 1993. The dissociation constants of carbonic acid in seawater at salinities 5 to 45 and temperatures 0 to 45°C. Marine Chemistry 44, 249-267.

Examples

Run this code
## Computation with a couple of variables
buffer(flag=8, var1=8.2, var2=0.00234, S=35, T=25, P=0, Pt=0, 
	Sit=0, pHscale="T", kf="pf", k1k2="l")

## Using vectors as arguments
flag <- c(8, 2, 8)
var1 <- c(8.2, 7.477544e-06, 8.2)
var2 <- c(0.002343955, 0.001649802, 2400e-6)
S <- c(35, 35, 30)
T <- c(25, 25, 30)
P <- c(0, 0, 0)
Pt <- c(0, 0, 0)
Sit <- c(0, 0, 0)
kf <- c("pf", "pf", "pf")
k1k2 <- c("l", "l", "l")
pHscale <- c("T", "T", "T")
buffer(flag=flag, var1=var1, var2=var2, S=S, T=T, P=P, Pt=Pt, 
	Sit=Sit, kf=kf, k1k2=k1k2, pHscale=pHscale)


## Test for all flags 

flag <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23, 24, 25)

var1 <- c(8.200000, 7.477544e-06, 7.477544e-06, 7.477544e-06, 7.477544e-06, 8.2, 
	8.2, 8.2, 8.2, 0.001685024, 0.001685024, 0.001685024,  0.0002888382, 
	0.0002888382, 0.002391252, 264.2008, 264.2008, 264.2008, 264.2008, 264.2008)

var2 <- c(7.477544e-06, 0.001685024, 0.0002888382, 0.002391252, 0.001981340, 
	0.001685024, 0.0002888382, 0.002391252, 0.001981340, 0.0002888382, 0.002391252,
	0.001981340,  0.002391252, 0.001981340, 0.001981340, 8.2, 0.001685024, 
	0.0002888382, 0.002391252, 0.001981340)

buffer(flag=flag, var1=var1, var2=var2)

Run the code above in your browser using DataLab