development/get.CO2Sys_CO2_TCO2.R

#'@title
#'@description

#'@usage

#'
#'@param
#'@return
#'@note
#'@references
#'@author
#'@examples

#'@export

get.CO2Sys.CO2_TCO2 <- function(CO2, TCO2, temperature, salinity, pressure){

  vars <- c("pCO2", "CO2", "HCO3", "CO3", "TCO2", "pH")
  CO2Sys <- vector("list", length(vars))
  names(CO2Sys) <- vars

  CO2Sys[["CO2"]] <- CO2molL
  CO2Sys[["TCO2"]] <- TCO2molL

  K0 <- get.K0(temperature, salinity, pressure)
  K1 <- get.K1(temperature, salinity)
  K2 <- get.K2(temperature, salinity)

  CO2Sys[["pCO2"]] <- CO2Sys[["CO2"]] / K0
  a <- K1 * K2 * CO2Sys[["CO2"]]
  b <- K1 * CO2Sys[["CO2"]]
  c <- CO2Sys[["CO2"]] - CO2Sys[["TCO2"]]
  D <- b * b - 4 * a * c
  H <- (2 * a)/(sqrt(D) - b)

  OH <- get.OH(temperature, salinity, H)

  CO2Sys[["HCO3"]] <- K0 * K1 * CO2Sys[["pCO2"]] / H
  CO2Sys[["CO3"]] <- CO2Sys[["TCO2"]] - CO2Sys[["CO2"]] - CO2Sys[["HCO3"]]
  CO2Sys[["TAlk"]] <- CO2Sys[["HCO3"]] + 2 * CO2Sys[["CO3"]] + OH - H
  CO2Sys[["pH"]] <- -log10(H)

  H <- 10^(-CO2Sys[[pH]])  #This is an approximation and wrong.  Good enough for now however.

  CO2Sys[["HCO3"]] <- K1 * CO2Sys[["CO2"]] / H
  CO2Sys[["CO3"]] <- K2 * CO2Sys[["HCO3"]] / H
  CO2Sys[["TCO2"]] <- CO2Sys[["CO2"]] + CO2Sys[["HCO3"]] + CO2Sys[["CO3"]]

  return(CO2Sys)
}
gholtgrieve/gassyPants documentation built on May 9, 2019, 5:02 a.m.