Learn R Programming

seasonalclumped (version 0.3.2)

carbmodel: Function that produces \(\delta^{18}O\) and \(\Delta_{47}\) records

Description

Takes vectors of time, temperature, growth rate and \(\delta^{18}O\) of the fluid and converts them into a \(\delta^{18}O\) and \(\Delta_{47}\) record. The \(\delta^{18}O\) and \(\Delta_{47}\) values are calculated for every depth value provided in the D vector. By default, the empirical transfer function by Kim and O'Neil (1997) is used to produce the \(\delta^{18}O\) record, but other transfer functions (e.g. Grossman and Ku, 1986) are also supported. The default transfer function for converting temperature data to \(\Delta_{47}\) data is based on Bernasconi et al. (2018), but other transfer functions (e.g. Jautzy et al., 2020) are also supported.

Usage

carbmodel(
  time,
  SST,
  GR,
  d18Ow,
  D,
  d18O_fun = "KimONeil97",
  D47_fun = "Bernasconi18",
  AV = FALSE,
  plot = FALSE
)

Arguments

time

Time vector (values in years)

SST

A vector containing temperature data (values in degrees C; length must be equal to that of time)

GR

Growth rate vector (values in same time unit as time (years); length must be equal to that of time)

d18Ow

A vector containing data on the \(\delta^{18}O\) value of the precipitation fluid (values in permille VSMOW; length must be equal to that of time)

D

Depth vector (values in same depth unit as GR)

d18O_fun

String containing the name of the transfer function used to convert temperature and \(\delta^{18}O_{w}\) to \(\delta^{18}O_{c}\) data (for example: "KimONeil97" or "GrossmanKu86"). Defaults to Kim and O'Neil (1997).

D47_fun

String containing the name of the transfer function used to convert temperature to \(\Delta_{47}\) data (for example: "Bernasconi18" or "Jautzy20"). Defaults to Bernasconi et al., 2018).

AV

Should the subsampling take into account the mean value within the sample interval? TRUE/FALSE If FALSE, the interpolated value corresponding to the exact position is used instead of the mean of the interval

plot

Should the result be plotted? TRUE/FALSE

Value

A matrix containing subsampled time, depth, \(\delta^{18}O_{c}\) and \(\Delta_{47}\) values: "Tnew"): New time vector after subsampling "D"): New depth vector after subsampling "d18Oc"): Vector listing \(\delta^{18}O_{c}\) values for each sample "D47"): Vector listing \(\Delta_{47}\) values for each sample

References

package dependencies: ggplot2, gridExtra function dependencies: subsample, subsample_mean Grossman, E.L., Ku, T., Oxygen and carbon isotope fractionation in biogenic aragonite: temperature effects, Chemical Geology 1986, 59.1, 59<U+2013>74. https://doi.org/bvpzws

Kim, S., O'Niel, J.R., Equilibrium and nonequilibrium oxygen isotope effects in synthetic carbonates, Geochimica et Cosmochimica Acta 1997, 61.16, 3461<U+2013>3475. https://doi.org/c7bwbp

Dettman, D.L., Reische, A.K., Lohmann, K.C., Controls on the stable isotope composition of seasonal growth bands in aragonitic fresh<U+2013>water bivalves (Unionidae), Geochimica et Cosmochimica Acta 1999, 63.7<U+2013>8, 1049<U+2013>1057. https://doi.org/cbb7zc

Brand, W.A., Coplen, T.B., Vogl, J., Rosner, M., Prohaska, T., Assessment of international reference materials for isotope<U+2013>ratio analysis (IUPAC Technical Report), Pure and Applied Chemistry 2014, 86.3, 425<U+2013>467. https://doi.org/fpc2

Kele, S., Breitenbach, S. F., Capezzuoli, E., Meckler, A. N., Ziegler, M., Millan, I. M., Kluge, T., De<U+00E1>k, J., Hanselmann, K. and John, C. M., Temperature dependence of oxygen<U+2013> and clumped isotope fractionation in carbonates: a study of travertines and tufas in the 6<U+2013>95 C temperature range, Geochimica et Cosmochimica Acta 2015, 168, 172<U+2013>192. https://doi.org/f7sgn6

Bernasconi, S.M., M<U+00FC>ller, I.A., Bergmann, K.D., Breitenbach, S.F., Fernandez, A., Hodell, D.A., Jaggi, M., Meckler, A.N., Millan, I. and Ziegler, M., Reducing uncertainties in carbonate<U+2013>clumped isotope analysis through consistent carbonate based standardization. Geochemistry, Geophysics, Geosystems 2018, 19<U+2013>9, 2895<U+2013>2914. https://doi.org/gfmjrw

Petersen, S. V., Defliese, W. F., Saenger, C., Da<U+00EB>ron, M., Huntington, K. W., John, C. M., Kelson, J. R., Bernasconi, S. M., Colman, A. S., Kluge, T., Olack, G. A., Schauer, A. J., Bajnai, D., Bonifacie, M., Breitenbach, S. F. M., Fiebig, J., Fernandez, A. B., Henkes, G. A., Hodell, D., Katz, A., Kele, S., Lohmann, K. C., Passey, B. H., Peral, M. Y., Petrizzo, D. A., Rosenheim, B. E., Tripati, A., Venturelli, R., Young, E. D. and Winkelstern, I. Z., Effects of Improved 17O Correction on Interlaboratory Agreement in Clumped Isotope Calibrations, Estimates of Mineral<U+2013>Specific Offsets, and Temperature Dependence of Acid Digestion Fractionation, Geochemistry, Geophysics, Geosystems *2019, 20<U+2013>7, 3495<U+2013>3519. https://doi.org/ggrc39

Jautzy, J. J., Savard, M. M., Dhillon, R. S., Bernasconi, S. M. and Smirnoff, A., Clumped isotope temperature calibration for calcite: Bridging theory and experimentation, Geochemical Perspectives Letters 2020, 14, 36<U+2013>41. https://doi.org/fpc3

Examples

Run this code
# NOT RUN {
# Create test data (= ideal case)
# Set boundary conditions
Td <- seq(1, 12 * 365, 1) # Create timeline of 12 years in days
Ty <- Td / 365 # Convert to years
MAT <- 20 # Set mean annual temperature
Amp <- 10 # Set seasonal amplitude
Sext <- 2 * Amp # Calculate extent of seasonal variability
TSD <- 1.5 # Set the degree of random non<U+00E2><U+20AC><U+201C>seasonal noise on the SST curve
# ("weather")
SST <- rnorm(length(Ty), MAT + Amp * sin(2 * pi * Ty), TSD) # Create virtual
# daily SST data
GR <- rep(10 / 365, length(Ty)) # Set growth rate to 10 mm/yr and create daily
# GR vector
DSD <- 0.6 # Set the degree of random non<U+00E2><U+20AC><U+201C>seasonal noise on the d18Osw curve
# ("salinity fluctuations")
d18Osw<-rnorm(length(Ty), rep(0, length(Ty)), DSD) # Set d18Osw to 0 permille
# VSMOW, create daily d18Osw vector
SR <- 0.75 # Set sampling resolution to 0.75 mm
# Create vector for all samples along entire shell length by applying constant
# sampling resolution
D <- seq(SR, sum(GR), SR)
# Calculate virtual data
newdata <- carbmodel(Ty, SST, GR, d18Osw, D, AV = TRUE)
# }

Run the code above in your browser using DataLab