Adiabat_1ph 2.0

This package contains the binaries, scripts, documentation and example files for adiabat_1ph, the public text-based front-end to the MELTS, pMELTS, and pHMELTS models. A list of files in this package is included below; full explanations are in the documentation. This is version 2.0; a brief change log is below.

This front end is the work of Paul Asimow and Paula Smith and it uses the MELTS and pMELTS algorithms developed by Mark Ghiorso & co-workers. You are welcome to use and distribute this program, under the condition that you acknowledge all the contributors by citing the appropriate references with any results:

  • Smith & Asimow (2005) -- front end
  • Ghiorso & Sack (1995) -- underlying thermodynamic model (MELTS)
  • Ghiorso et al (2002) -- underlying thermodynamic model (pMELTS)
  • Asimow & Ghiorso (1998) -- subsolidus calculations (if used)
  • Asimow et al (2004) -- H20 partitioning as a trace element
  • Wood & Blundy (1996) -- D = D(P,T,X) calculation (if used)

There may be others, depending on the exact calculation performed or the source and / or partition coefficients used. See Smith & Asimow (2005) and documentation for fuller details. Latest binaries, documentation and example files are available at http://www.gps.caltech.edu/~asimow/adiabat


PACKAGE CONTENTS:

Documentation

  • adiabat_1ph_manual.pdf -- instructions for files and execution

Executables

  • adiabat_1ph (or adiabat_1ph.exe) -- main executable
  • cubicquad2 (or cubicquad2.exe) -- integration program

Perl scripts

  • run_adiabat.pl -- to run adiabat_1ph
  • column_pick.pl -- to process output
  • file_format.pl -- to convert file formats between platforms

Melts input files

  • McKenzie_ONions_DM -- Depleted Mantle of McKenzie & O'Nions '91
  • McKenzie_ONions_PM -- Primitive Mantle of McKenzie & O'Nions '91
  • Sun_McDonough_PM -- Primitive Mantle of Sun & McDonough '89
  • Workman_Hart_DMM -- Depleted MORB Mantle of Workman & Hart '05

Example files

  • frac_xtal.dat -- example command_file for run_adiabat.pl (fractional crystallization example)
  • isentropic_melt.dat -- example command_file for run_adiabat.pl (adiabatic decompression melting example)
  • adiabat_env.dat -- default environment in command_file format
  • default_trace_data.dat -- default partition coeffs. & parameters

CHANGE LOG:

1.1 (August 15th 2004)

  • Version submitted to G-cubed with software brief

1.2 (September 27th 2004)

  • Added automatic updating to all distributions of adiabat_1ph
  • Added 'Suppress: none' line to run_adiabat.pl input
  • Fixed run_adiabat.pl bug (added an extra space to melts_file)
  • Improved adiabat_1ph handling of the exhaustion of water late in a fractional melting run.

1.3 (October 27th 2004)

  • Fixed perl bug that added extra spaces in Trace & Solids_comp.txt tables
  • Fixed output path bug in run_adiabat.pl
  • Fixed P/T/mass label order in run_adiabat.pl for Solids_comp.txt
  • Added ADIABAT_SAVE_ALL environment variable
  • Fixed adiabat_1ph bug that gave a missing / extra line in Trace output
  • Fixed potential memory leakage for repeated adiabat_1ph runs

1.4 (December 23rd 2004)

  • Version for archiving in GEMS with software brief
  • Ensured routines can deal with blank lines
  • Added option to turn fO2 buffering on / off
  • Improved reliability of subsolidus fO2 routine
  • Added ADIABAT_FIX_GARNET environment variable
  • Added option to read / write a binary restart file
  • Improved handling of P2O5 and K2O in norm calculation
  • Fixed run_adiabat warnings if no command line options are used
  • Fixed MacOS X specific bug in subsolidus D=D(P,T,X) code

1.5 (May 4th 2005)

  • Added new option to selectively fractionate some solids
  • Added water fractionation and residual porosity
  • Added biotite model and ADIABAT_FIX_MICA environment variable
  • Fixed Windows specific bug in fractionateSolids
  • Fixed unitialised user name problem for run_adiabat.pl on Windows
  • Fixed minor bugs in liquid viscosity, δfO2, etc.
  • Fixed bug in isochoric calculations
  • Water may be input in wt% and / or ppm for ADIABAT_DO_TRACE_H2O (and summed)
  • Added remix function for flux melting simulation
  • Added more warnings e.g. if no input file has been read in
  • Put all binary input / output in one file instead of two

1.5.1 (July 12th 2005)

  • Unified input for melts and enrichment files (fixed sourceMix)
  • Fixed bug in I/O if no ADIABAT_MODE environment variable set

1.6 (October 12th 2005)

  • Enabled isenthalpic and geothermal modes
  • Unified how isothermal, isenthalpic or isochoric reference quantites are set
  • Added ADIABAT_IMPOSE_FO2 to approximate fO2 buffering along an isothermal, isenthalpic or isochoric path
  • Added ADIABAT_ASSIMILATE environment variable and functionality
  • Made Mosenfelder et al (2005) water solubility in olivine the default values
  • Added ADIABAT_HK_TRACE_H2O to revert to old olivine solubility values
  • Fixed bug in fractionateSolids
  • Changed amount of retained solid phase from moles to 0.001 grams
  • Added ADIABAT_MASSIN environment variable for changing the retained amount
  • Added ADIABAT_SKIP_FAILURE environment variable
  • Reinstated bad filename behavior in sourceMix
  • Allowed PTpath mode to be entered as 'PTpath' or 'PTPath'
  • Made some internal changes should improve efficiency
  • Fixed perl bug if file with 'Suppress: none' in it run more than once
  • Fixed perl bug that occasionally meant white space not stripped out
  • Corrected some inaccuracies in documentation

1.6.1 (October 21st 2005)

  • Fixed a bug that inhibited addition of liquid in pHMELTS runs

1.6.2 (November 9th 2005)

  • Fixed automatic setting of reference entropy in pHMELTS
  • Fixed various bugs in internal and stand alone cubicquad2
  • Changed internal and stand alone cubicquad2 output behaviour
  • Added option to print header lines only from internal cubicquad2

1.6.3 (May 1st 2006)

  • Fixed crash if user mistypes filename when ADIABAT_SKIP_FAILURE i sset
  • Fixed minor bug in internal version of cubicquad2
  • Fixed bug that stopped ADIABAT_MULTIPLE_LIQUIDS working
  • Added option to preserve old water mineral-mineral partitioning
  • Added warning if user accidently sets both ADIABAT_DELTAT and DELTAP to 0
  • Added warning if pHMELTS is started above the anhydrous solidus (v1.7: now corrected)

1.6.4 (July 7th 2006)

  • Fixed minor bug in pHMELTS
  • Fixed bug in sub-solidus start with ADIABAT_FLUX_MELTING
  • Added dVdP and dVdT to the Liq_tbl.txt file

1.7 (October 30th 2006)

  • Fixed trivial bugs in isentropic or fO2 buffered pHMELTS
  • Ensured pHMELTS start above anhydrous solidus is handled correctly
  • Added option to keep old P and / or T when using option 2
  • Added facility to write out melts files using option 8 and in cubicquad2
  • Added simple integration to both versions of cubicquad2
  • Added ADIABAT_MINPHI and clarified use of ADIABAT_MINF
  • Added more warnings e.g. for melt extraction / buffering / constraints
  • Made sure H2O buffer switches off automatically if appropriate (like fO2)
  • Made adiabat_1ph and run_adiabat.pl use ADIABAT_DELTAP for output options
  • Put Integrate File in the '-p path' directory with other files
  • Set default Na2O in Workman & Hart to higher estimate of 0.28 (see published paper)

1.7.1 (December 1st 2006)

  • Added output of other variable (P or T) to Solids_comp.txt
  • Changed run_adiabat.pl to pick up the other variable for Trace output
  • Fixed bug in run_adiabat.pl so that mass of pure phases is printed
  • Improved behaviour of find liquidus function
  • Added option to use 'isograd' function for starting conditions
  • Added ADIABAT_V16_BIN_FILE for backwards compatibility
  • Fixed some memory leaks
  • Fixed serious bug in v1.7 pHMELTS subsolidus start
  • Fixed minor bug in fractionateSolids

1.7.2 (January 16th 2007)

  • Fixed a bug that meant superliquidus starts appeared to not work
  • Corrected trace element H2O in residue for option 8
  • Fixed slight inaccuracy in trace elements when extracting melt
  • Corrected minor bug in isochoric pHMELTS calculations
  • Corrected bug for isochoric systems with pure-phases present

1.8 (May 24th 2007)

  • Overhauled column_pick.pl, including bug fixes, warnings & checks
  • Allowed user to choose delimiter and header type for column_pick.pl output
  • Added table_file to run_adiabat.pl, including for automatic mode
  • Removed '-n' from run_adiabat.pl; use melts_file 'Initial Mass:' line instead
  • Made run_adiabat.pl handle wrong line endings handled more reliably
  • Made run_adiabat.pl rename the old crash_file so it is not accidently used
  • Made run_adiabat.pl puts underscores in phase names like 'rhm oxide'
  • Fixed header in Solids_comp.txt output for pure phases
  • Added P, T and mass to major and trace elements solids output
  • Added ADIABAT_V17_BIN_FILE for backwards compatibility
  • Allowed user to change PTfile or MIN/MAX/DELTA P or T after execution
  • Made adiabat_1ph ask for subsolidus / superliquidus start for each melts_file
  • Made setting of reference quantities more flexible in option 7
  • Fixed ADIABAT_SKIP_FAILURE so P or T is incremented properly
  • Made ADIABAT_SKIP_FAILURE abort if PT limits hit twice consecutively
  • Fixed minor bugs in D(PTX) for garnet and clinopyroxene
  • Added selective fractionation of exsolved phases e.g. plagioclase
  • Made norm routine add phases if required by bulk compoistion
  • Made norm routine automatically add cpx, opx and quartz if appropriate
  • Made norm routine do an unbuffered calculation before fO2-buffered one
  • Corrected warning for residue composition in option 8
  • Updated routines for fO2-buffered calculations so they run more robustly
  • Added ADIABAT_LIQUID_FO2 to only impose fO2 buffer above solidus
  • Added ADIABAT_FO2_PRESSURE_TERM for calculations with QFM buffer
  • Added extra checks to avoid liquid negative SiO2 with fO2 buffer
  • Avoided infinite loops of exsolution followed by phase dropping
  • Added workaround to reduce problems with phase metastability

1.8.1 (June 13th 2007)

  • Fixed version number within program
  • Modified sourceMix so can be called at any time even for major elements

1.8.2 (June 20th 2007)

  • Fixed bug in pHMELTS related to fO2 buffering changes in v1.8
  • Fixed bugs for ADIABAT_V17_BIN_FILE when trace elements are included

1.9 (October 19th 2007)

  • Modified updates for Linux and MacOS X so maximum 3 second wait
  • Modified updates for all platforms so only performed after 6 hours
  • Added 'Option not recognised' warning to menu
  • Set default ADIABAT_MASSIN for water to 1/10 that for other solids
  • Allowed ADIABAT_MINW to be set to 0.0 for perfect water fractionation
  • Added optoin write out bulk composition to a melts_file if fractionating solids
  • Fixed up H2O buffer for aH2O=1.0 with and without pHMELTS
  • Fixed problem with stabilisation of hydrous pure phases
  • Fixed possible problem with phlogopite when ADIABAT_FIX_MICA used
  • Fixed trace element concentrations in multiple clinopyroxenes with D=D(P,T,X)
  • Fixed 'negative mole fraction in liquid' when no liquid present
  • Added restart_file 'seed' capability for phase metastability
  • Modified extractMelt expression slightly to give F=ADIABAT_MINF exactly afterwards
  • Added ADIABAT_CELSIUS_OUTPUT option for screen and text output

2.0 (March 10th 2008)

  • Added script version info to help message printed by typing 'run_adiabat.pl -h'
  • Added title line, taken from the original melts_file, to most output files
  • Added ADIABAT_V19_BIN_FILE for backwards compatibility
  • Fixed minor case sensitivity bug when run_adiabat.pl writes out melts_file
  • Fixed bugs with ADIABAT_CELSIUS_OUTPUT and added it to the norm routine
  • Corrected reading in of trace_data_file for elements like Y, Yb, P, Pb etc.
  • Added Qa, Qb... Qz user-definable trace elements
  • Allowed all isotopes to be used (so long as element exists) plus CO2 species
  • Fixed potential input problems for phase names with spaces e.g. 'ortho oxide'
  • Added menu option to write out thermodynamic data for all phases
  • Fixed bug that meant spurious, albeit tiny, amounts of liquid could be added to assemblage
  • Fixed serious bug in isochoric mode related to fO2 buffering changes in v1.8
  • Fixed bug that meant the standard entropy of coesite was missing
  • Added melt fraction (by mass) to screen output, along with activity of H2O
  • Fixed bug in phase diagram mode that meant forum tutorial failed with v1.9
  • Overhauled phase diagram mode to make improve success rate of calculations
  • Extended 'upwards-only search for troublesome phases' to work downwards-only for liquid when required
  • Added option to track contours of aH2O in liquid (between solidus and liquidus), instead of melt fraction
  • Fixed bug in pMELTS that could slow convergence in calculation of P(V) but did not affect the final solution (see Appendix, Ghiorso et al 2002)
  • Made additional changes to improve adiabat_1ph 64-bit compliance

ERRATA AND BUG FIX DETAILS:

The Adiabat_1ph Users Forum provides a means for users to exchange experiences, tips, perhaps even files and add-ons for the Adiabat_1ph software package. You can also report problems, suggest new features and receive (optional) e-mail announcements of software releases via the forum. With the introduction of the forum we are phasing out the use of the old (majordomo) updates e-mail list. We strongly encourage you to register with the forum, whether or not you wish to post messages and / or receive updates e-mails. For more details, please see this introductory message.

The Caltech GPS Division web server is now configured to understand the '.dmg' file type so all browsers, including Safari, should be able to download such files correctly. If any problems remain, please let us know and, in the meantime, try right clicking (PC) or CTRL-click (Mac) and choosing "Save Link Target As..." or a similar option. The '.zip' versions of the MacOS X archive files are much easier to generate that '.dmg' ones so for version 1.9 onwards we will use that format unless there is demand for the '.dmg' alternative. If you cannot open the MacOS X '.zip' file please let us know and we will revert to '.dmg'.

Version 2.0.1 fixes a buffer overrun during melts_file or trace_data_file input that could cause memory corruption in certain circumstances. Thanks to John Koziar for his forum post pointing out the Windows version of this bug. The update should be more tolerant of incorrect line endings in input files, particularly on a Mac, and tabs are now allowed in the pt_file. A number of other minor bugs and a small memory leak have been corrected. Finally the melts_file output (option 14) has been altered slightly to make it easier to generate a batch_file for multiple calculations. Previously the choice between writing out the residue / bulk composition or the liquid composition was only given if both solid(s) and liquid were present. This meant that the user had to anticipate whether this would be the case at the time of writing the batch_file. Now the question is always asked but if the assemblage is all solid or all liquid the answer given will not matter. For example, if the liquid composition is chosen for a subsolidus assemblage, then a warning will be given that the residue or bulk composition is being written instead.

Revision 1 of the version 2.0 manual corrects a few typos and omissions. The most significant, but still minor, one of these is to point out that the new thermodynamic phase output file (menu option 15) includes the chemical potentials of each end-member, as well as the formulas and molar proportions, for all stable phases in the assemblage.

Last updated July 9th, 2008.