| 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)