zrSaturationBorisov {GCDkit} | R Documentation |
Calculates zircon saturation temperatures for the magma of the given major-element composition, Zr concentration and pressure. Alternatively, this function returns Zr saturation levels for the assumed magma temperature and pressure.
zrSaturation.Borisov(WR, P = 0, T = 0, Zr = filterOut(WR,"Zr",1))
WR |
numeric matrix; whole-rock data in wt. % |
P |
assumed pressure in kbar (single value) |
T |
assumed magma temperature in °C (single value) |
Zr |
(optional) numeric vector with Zr contents in ppm |
Calculates Zr saturation concentration for the magma of the specified major-element composition, at assumed temperature and pressure.
Given 'T
' is the estimated absolute temperature (K) of the magma, the magma chemistry
has been recast to mole fractions of individual oxides (Xi)
and 'P
' is pressure in GPa, the Zr saturation level is given by several equations of
Borisov et al. (2025). NB that all logarithms are decadic:
Equation (7)
log10(Zr.sat) = 7.47 + 3.4B - 3510BT/T - 6219/T - 0.451P + 0.156P^2
where:
B = (0.2XTiO2 + 2XAl2O3 - 3XFeO + XMgO - XCaO - 5XNa2O - 5XK2O)/XSiO2
and:
BT = (3XAl2O3 - 5XFeO + XMgO - 2.5XCaO - 9XNa2O - 9XK2O)/XSiO2
Equation (8)
log10(Zr.sat) = 8.16 + 0.557CB + 1634CBT/T - 7207/T - 0.112P
where:
CB = (XTiO2 + 8XFeO - 1.1XMgO + 1.2XCaO - 25XNa2O - 26XK2O)/XSiO2
and:
CBT = (-3XFeO + 1.8XMgO + XCaO + 16XNa2O + 16XK2O)/XSiO2
Equation (9)
log10(Zr.sat) = 7.59 + 5.535BH - 6589/T - 0.233P
where:
BH = (1.1XTiO2 + 1.3XAl2O3 + XFeO + 2.7XMgO + 4.0XCaO + 4.7XNa2O + 5.9XK2O)/XSiO2
Equation (10)
log10(Zr.sat) = 5.33 + 2.090BL - 3347/T
where:
BL = (XTiO2 - 1.2XAl2O3 + 2.4XCaO + 3.4XNa2O + 1.5XK2O)/XSiO2
On the other hand, the saturation temperature (°C) can be obtained from the observed Zr concentration and major-element composition of the magma (assuming no zircon inheritance):
Equation (7)
TZr.sat.CB25.equ7 = -(3510BT + 6219)/(log10(Zr) - 7.47 - 3.4B + 0.451*P - 0.156P^2)-273.15
Equation (10)
TZr.sat.CB25.equ10 = -3347/(log10(Zr) - 5.33 - 2.090BL)-273.15
Returns a matrix 'results
' with the following columns:
Zr.obs |
observed Zr concentrations in ppm |
Zr.sat.B25.equ7 |
saturation levels of Zr (ppm) at assumed T (eq. 7) |
Zr.sat.B25.equ8 |
saturation levels of Zr (ppm) at assumed T (eq. 8) |
Zr.sat.B25.equ9 |
saturation levels of Zr (ppm) at assumed T (eq. 9) |
Zr.sat.B25.equ10 |
saturation levels of Zr (ppm) at assumed T (eq. 10) |
T.sat.C.B25.equ7 |
zircon saturation temperatures (eq. 7) in °C |
T.sat.C.B25.equ10 |
zircon saturation temperatures (eq. 10) in °C |
Saturation.r
For calculations are actually used more precise coefficients as taken from the original spreadsheet of Borisov et al. (2025).
Vojtěch Janoušek, vojtech.janousek@geology.cz
Borisov A, Aranovich L, Antoshechkina P (2025) Zircon solubility in silicate melts: New empirical models and thermodynamics. Chem Geol 679: 122682. doi: 10.1016/j.chemgeo.2025.122682
sampleDataset("sazava") zrSaturation.Borisov(WR,P=3000,T=800) # Examples from spreadsheet by Borisov et al. (2025) z <- c(60.83,0.00,11.54,0.00,10.53,11.56,0.00,0.00,3757) names(z) <- c("SiO2","TiO2","Al2O3","FeOt","MgO", "CaO","Na2O","K2O","Zr") zrSaturation.Borisov(z,P=0.0001,T=1408) z <- c(59.57,0.00,15.57,0.00,17.84,0.00,0.00,0.00,1131) names(z) <- c("SiO2","TiO2","Al2O3","FeOt","MgO", "CaO","Na2O","K2O","Zr") zrSaturation.Borisov(z,P=0.0001,T=1501)