Source code for the alphaMELTS zircon saturation calculations used in the paper "Temporal variation in relative zircon abundance throughout Earth history" by Keller, Boehnke, and Schoene (2017) in Geochemical Perspectives Letters.
The code is written mostly in C, using MPI to distribute whole-rock compositions from an input file (ignmajors.csv) to cores on different nodes, each of which then spins up an alphaMELTS simulation using a system() call, reads the output, and conducts Zr partitioning calculations using the mineral abundances reported by MELTS.
Two versions of the main parallel code are provided: meltsTzircParallelFull.c which outputs zircon saturation state for each temperature step of the MELTS simulation, and meltsTzircParallel.c which outputs only the total mass saturated.
Mineral/melt parition coefficients for zirconium are obtained from the GERM Kd database, interpolated as a function of SiO2 to account for systematic changes in Kd as a function of maga polymerization, and stored in GERM.h, while a range of functions for interacting with alphaMELTS are provided in runmelts.h