We have a new paper out in *Paleoceanography* which describes a new computational toolkit that I built during my Ph.D. to characterize uncertainty in foraminiferal reconstructions of temperature and salinity. The toolkit, called **Paleo Seawater Uncertainty Solver** (or **PSU Solver**), constrains analytical, sampling, calibration, dating, and preservation-based uncertainty in reconstructions that use paired measurements of stable isotopes of oxygen (δ18O; apologies that I cannot make letters superscript in this interface) and magnesium-to-calcium (Mg/Ca) ratios in foraminifera (or forams: a type of plankton that deposit calcium carbonate shells). In the paper, we show how signficant this characterization of uncertainty can be while inferring climate processes in the past using forams.

δ18O has been measured in foram-calcite for over half-a-century to understand past climatic processes. In a closed system, changes in foram-δ18O ought to be governed by thermodynamics. However, in the open ocean, the foram-δ18O composition reflects not just the temperature of the seawater, but also the δ18O content of the seawater in which the foram grew its calcite shell (δ18Osw; where *sw *is in subscript and stands for 'seawater'). This parameter, δ18Osw, which may vary independent of temperature, can be used as a proxy for salinity changes, and on longer timescales, a proxy for ice-volume (more info here and here). The problem is, if you only measure the δ18O forams, how do you know which changes are due to temperature and which changes are due to δ18Osw of the ocean? In other words, the foram-δ18O signal is convoluted by temperature *and* salinity/ice-volume signals.

This is where the Mg/Ca paleothermometer comes into the picture: over the last two decades, researchers have shown that Mg/Ca ratios in forams can give quantitative insights into past seawater temperature changes i.e. foram-based Mg/Ca varies as a function of temperature! This appears to solve the deconvolution problem – if one measured both Mg/Ca and δ18O on co-deposited forams, then you could solve for δ18Osw and temperature of the seawater where the forams lived. Mathematically,

- δ18O =
*g*(T, δ18Osw) - Mg/Ca =
*f*(T)

So, with both of these measurements on the foram shells, one could tease out the δ18Osw *and* temperature of the seawater to infer past climate change. This technique has been used successfully to understand a variety of significant climate processes (we list many of them in our paper).

However, as more nuanced calibrations (i.e. as functions *f* and *g* above keep getting updated) and inferences are made from these paired measurements, and as climate model-data comparisons increasingly demand for more quantitative paleorecords, there is a strong need to quantify the uncertainty in the above deconvolution of temperature and δ18Osw. Transferring analytical (/measurement/instrumental) errors, sampling uncertainty due to the number of foraminifera used in the measurement, calibration uncertainties, preservation effects, and age-model uncertainties into temperature and δ18Osw space is not straightforward due to a variety of reasons, one of which is that the Mg/Ca-T relationship is non-linear in forams. Theoretical error propagation exercises predict uncertainties way too large to interpret even glacial-interglacial signals where such practices cannot handle complex issues such as the influence of salinity on Mg/Ca variability and the non-stationarity of the relationship between salinity and δ18Osw.

In any case, all these things call for a computational approach to address quantitative uncertainty in foram paleoclimate. **This is what PSU Solver does.** The code is written in MATLAB and is available here, on Mathworks, or on GitHub. It can produce uncertainty profiles for temperature, δ18Osw, and salinity paleorecords from paired foramininferal δ18O and Mg/Ca datasets. It can be *as* customized as the user wants it to be (or as simple as a user wants it to be) where the user dictates all options that they require. The user input can be as easy as time, δ18O, and Mg/Ca, if so desired.

Go ahead, download it, and try to play around with the code (here are the help files)! It can easily be coupled to more sophisticated algorithms or different sampling schemes as well. Furthermore, there’s an option to couple output from BACON to incorporate radiocarbon-based uncertainty in PSU Solver as well. I will have a post up shortly that explains how PSU Solver works in detail soon. Until then, here’s the type of plot that *you* could be producing right now (paleorecord from the Pigmy basin, Gulf of Mexico). Go try it out! We show that particular excursions in your reconstructions may (*or may not*) be sensitive to easily-changable options in the PSU Solver algorithm, and hence be an artifact of transposition issues. Do let me know if you have any questions/doubts/criticisms!

P.S. If you are not a super expert in coding (which I am not either), PSU Solver has been written keeping us in mind: it is not meant to intimidate! Try it out...! Thanks to Julie Richey for being patient with the algorithm and also to Chris Maupin for testing PSU Solver.