STATUS OF PHREEQC PROGRAMS

May 10, 2017: Updates for all PHREEQC programs (version 3.3.12, svn 12704)

May 10, 2017: Updates for all PHREEQC programs (version 3.3.12, svn 12704).

PHREEQC. Added new Basic function TITLE, which returns the last definition by a TITLE keyword data block. Added a new option for a density calculation to SOLUTION and SOLUTION_SPREAD. The speciation calculation for a solution is iterated until the density used in the conversion of units is the same as the density calculated for the solution. It affects solutions with concentrations defined as per liter (mg/L, for example). Example is

SOLUTION; -density 1.1 calculate

Bug fix for -donnan, -debye, when surface related to mineral that has zero moles. Bug fix for when -no_check followed mineral name in PHASES. Now catches an error if an equation is not defined on the line following the line with the mineral name.

PHAST. Phastinput did not have enough precision in the field for the end of a simulation period. Under some conditions, the number written could be the same as the previous period, which caused an error exit. More digits are now written in the Phast.tmp file.

March 10, 2017: Updates for all PHREEQC programs (version 3.3.11, svn 12535).

PHREEQC. Added the ColdChem.dat database developed by Toner and Catling, Journal of Chemical & Engineering Data, 2017, DOI: 10.1021/acs.jced.6b00812. It is a comprehensive Pitzer model in the Na-K-Ca-Mg-Cl system valid for low temperature, from 298.15 to < 200 K. PHREEQC was modified to allow definition of the temperature dependence of A(phi) in the Pitzer formulation through a new option, -APHI, in the PITZER keyword. The coefficients of the APHI expression are the same as the temperature dependence of other Pitzer parameters. A new Basic function, APHI, has been added to give the value of the parameter in the current calculation.

PHREEQC. Added logic to limit the range of the fugacity coefficient. Change to avoid potential NULL pointer in -multi_D. Error check that the same element name was not used for both SURFACE and EXCHANGE, which caused a NULL pointer. Some variables in the unknown structure are now initialized.

PhreeqcRM. The Fortran version of RM_SpeciesConcentrations2Module did not provide the correct return value. Generally, -3 was returned (IRM_INVALIDARG), even if the method worked properly and should have returned 0 (IRM_OK).

January 12, 2017: Updates for all PHREEQC programs (version 3.3.10, svn 12220).

PHREEQC. Updated Basic function SYS("equi"...). The function now gives the correct amounts of an equilibrium phases at the end of a reaction. Previously, the function erroneously gave the amount of equilibrium phases before reactions.

November 15, 2016: Updates for all PHREEQC programs (version 3.3.9, svn 11951).

PHREEQC. Updated sit.dat to version 9b0 from www.thermochimie-tdb.com. Corrected description of parameters for some RATES definitions in Amm.dat. PHREEQC crashed if the proportion of sites to kinetic reactant was zero when a surface was related to a kinetic reaction.

PhreeqcRM. Fixed a convergence problem in PhreeqcRM due to a poor initial guess for the mass of water in a cell; now uses the current moles of oxygen to estimate the mass of water.

PHAST. Minor code change to eliminate compiler warnings.

November 1, 2016: NetpathXL (version 1.5.0, svn 11889).

NetpathXL. Fixed a bug when making the Han and Plummer plot using Excel 2013. NetpathXL assumed at least two worksheets were present, but the default for Excel 2013 is one worksheet. Added logic to add a new worksheet if necessary.

September 14, 2016: Updates for all PHREEQC programs (version 3.3.8, svn 11728).

PHREEQC. Updated online manual (http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc/phreeqc3-html/phreeqc3.htm) to have revisions noted in italic text and better graphics for figures.

Added two new Basic functions related to KINETICS:

n$ = KINETICS_FORMULA$("Albite", count, elt$, coef)

this function searches for a kinetic reaction definition (Albite, in the example). If found, n$ is set equal to the first argument (Albite), otherwise an empty string is returned. The function returns these values: count is the number of items in the arrays elt$ and coef; elt$ is a list of element names in the formula for the kinetic reaction; and coef is a numeric array containing the number of atoms of each element in the kinetic-reaction formula, in the order defined by elt$, which is alphabetical by element.

m = SYS("kin", count , name$ , type$ , moles)

This function identifies all of the kinetic reactants in the current KINETICS definition and returns the sum of moles of all kinetic reactants. Count is number of kinetic reactants. Name$ contains the kinetic reactant names. Type$ is “kin”. Moles contains the moles of each kinetic reactant. The chemical formula used in the kinetic reaction can be determined by using a reaction name from Name$ as the first argument of the KINETICS_FORMULA$ Basic function.

Added new Basic function PHASE_VM("Calcite"). The function returns the molar volume for a mineral. The molar volume is defined for the mineral in PHASES with the -vm option. Use the Basic function GAS_VM for gas components.

The Peng-Robinson gas calculation failed with very smally gas partial pressures. Code was modified to set a minimum of 1e-10 atm for the calculation.

The file dw.cpp was removed from the source code. It contained obsolete code inherited from PHRQPITZ to calculate the density of water.

Implemented some changes for redox calculations with the Pitzer model. Revising master variable values when large concentrations occur, and basis switching between redox environments. Algorithm for initial estimates of variables was also changed, as well as removing activity coefficient equations when not needed.

PhreeqcI. File/registry virtualization was disabled. Windows allowed users to write into system directories (Program Files for instance) even though they did not have sufficient permissions. The files were actually stored in another directory in the user's profile. The files are difficult to find, and, under some conditions, PhreeqcI would fail. Now, it is not allowed to write into directories for which the user does not have write permission.

PhreeqcRM. Removed tabs from RM_interface.F90. Added comment to output that user-grid cell numbers are 0 based (C-like). Order of header files was changed to put mpi.h first to avoid potential header conflicts with some MPI implementations.

PHAST. Added to error messages when a transport calculation fails.

April 21, 2016: Updates for all PHREEQC programs (version 3.3.7, svn 11094).

PhreeqcI. Fixed two long-standing bugs. (1) Under some conditions the headings were not printed to the selected output file (for example, SOLUTION;SELECTED_OUTPUT;END), and (2) the selected output file was deleted when reopening a .pqi file.

Phreeqc. Corrected spelling of “Cerussite” in phreeqc.dat, Amm.dat, wateq4f.dat, minteq.dat, and minteq.v4.dat.

April 18, 2016: Updates for all PHREEQC programs (version 3.3.6, svn 11064).

New features and bug fixes.

Phreeqc. Additional error checking. In SOLUTION_MASTER_SPECIES the master species must contain the element name. If an aqueous species lacked a molar volume parameter (Vm), then the change in molar volume for reactions involving that species were not calculated correctly. Now summations of molar volumes, including zero for the species, are calculated. Added Vm values for Gibbsite, Kaolinite, Albite, Anorthite, K-feldspar, Ca-Montmorillonite, Talc, Illite, Chrysotile, Sepiolite, Hematite, Goethite, Pyrite, and Mackinawite for the phreeqc.dat and Amm.dat databases.-porosities is now an option in TRANSPORT for defining a heterogeneous distribution of porosity for multi_d calculations.Added the Basic function EDL_SPECIES(surf$, count, name$, moles, area, thickness); it returns the total number of moles of species in the diffuse layer. The arguments to the function are as follows: surf$ is the name of a surface, such as "Hfo", excluding the site type (such as "_s"); count is the number of species in the diffuse layer; name$ is an array of size count that contains the names of aqueous species in the diffuse layer of surface surf$; moles is an array of size count that contains the number of moles of each aqueous species in the diffuse layer of surface surf$; area is the area of the surface in m^2; thickness is the thickness of the diffuse layer in m. The function applies when -donnan or -diffuse_layer is defined in SURFACE calculations. Added RHO_O, a new Basic function that gives the density of pure water at the current temperature. It is possible to calculate a negative mass of water in the units conversion; this problem is now trapped and an error message issued.

PhreeqcI. PhreeqcI has updated documentation through the help. All entries in green font are modifications, corrections, or new features. Corrected description of “EQUI” option of the SYS Basic function. The current working directory changed when browsing for databases; now the current working directory does not change when setting a database. SOLUTION_SPREAD did not import properly when using the P4W tab of PhreeqcI to generate example problems.

PhreeqcRM. InitialPhreeqcCell2Module method had incorrect indexing when using a mapping of model cells to chemistry cells that was not 1-to-1. The result was incorrect values for porosity, rv, and saturation.

Phast4Windows. Implemented PRINT_LOCATIONS in P4W. Fixed a bug in prisms that did not have a perimeter defined. Implemented CELL as an option for UNITS for solids.

February 4, 2016: Updates for all PHREEQC programs (version 3.3.5, svn 10806).

Now using Jenkins for continuous integration.

Phreeqc. Comments for K-spar and Albite RATEs were incorrect for phreeqc.dat and wateq4f.dat. Minor format change for specific conductance. Erroneous input could cause a segmentation fault for surfaces related to minerals or kinetics. Created an option to enter cell porosities in keyword TRANSPORT, which was motivated by the need to define porosities for a variable-porosity multicomponent diffusion problem. Previously the Basic function CHANGE_POR had to be used to allow variable porosity.

IPhreeqc. Added optional argument sl to GetSelectedOutputValue in Fortran. The additional argument indicates when an IPhreeqc string is large than the allocated space for the character variable in Fortran.

PhreeqcRM. Better error messages for CreateMapping. Fixed bug when transferring data for MPI. Surface related to kinetics lost concentrations of sorbed elements. Revised transfer of data for MPI when rebalancing. Serializes lists of characters, integers, and doubles, instead of writing full "dump" version of each reaction. Is much faster for cell transfers when rebalancing among processes. Advection example in C and C++ had wrong MPI type for integer transfers. Example code in documentation also had wrong MPI type for some integer transfers. Integer transfers in Fortran should use MPI_INTEGER, while integer transfers in C and C++ should use MPI_INT.

PHAST. Revised transfer of data for MPI when rebalancing.

October 23, 2015: Updates for all PHREEQC programs (version 3.3.3, svn 10424).

Phreeqc. A Pitzer formula for temperature-dependent constants was not valid below -10 C. Ther formula has been revised, and frezchem.dat calculations at temperatures below -10 C should now converge.

PhreeqcRM. Added methods and documentation for RM_GetEndCell and RM_GetStartCell for C and Fortran. C++ methods already existed. The methods give the range of chemistry cell numbers that are assigned to each worker (OpenMP) or process (MPI). If rebalancing is enabled, these numbers may change as cells are shifted among workers or processes.

Timing for rebalancing was changed to use MPI and OpenMP clock functions; previously the C clock() function was used under some conditions, which did not provide enough resolution and could generate a NaN for during the efficiency calculation.

When compiled with debug, an error message could cause an assert; the code was revised to avoid the assert and allow error messages to std:cerr under all conditions.

PHAST. HDF file was not handled correctly with intermediate HDF files were saved, but no SELECTED_OUTPUT was defined. P4W installer now continues even if MPI fails to install; the MPI version of PHAST will not work, but the OpenMP version will still run.

October 2, 2015: Updates for all PHREEQC programs (version 3.3.2, svn 10335).

PhreeqcRM. A new method was PhreeqcRM, SetScreenOn (RM_SetScreenOn), to control messages about rebalancing and any messages written with ScreenMessage (RM_ScreenMessage). Fixed bugs in configure scripts that required developer zlib to be installed. Now zlib is only needed if the --with-zlib option is given in order to write compressed dump files (#define USE_GZ).

PHREEQC. A new R version has been submitted to CRAN. A bug was fixed when GAS_PHASE components were not defined in PHASES. Fixed bug with SOLUTION_SPREAD. Element names starting with "[" were not handled correctly.

PHAST. Minimum concentrations were lowered from 1e-14 to 1e-18.

September 15, 2015: Updates for all PHREEQC programs (version 3.3.0, svn 10251).

PhreeqcRM. PhreeqcRM has been revised to decrease the memory footprint for MPI runs. The storage for about 8 variables was revised. Previously, each MPI process had a complete list of values for these variables (like saturation and porosity) for the entire model domain. Now, only values relevant to the cells that are associated with the MPI process are stored.

PHAST. In addition to the memory savings related to revisions in PhreeqcRM, the storage for MPI workers was streamlined. Many variables were unnecessary and were removed, both for processes that run only chemistry, and processes that run chemistry and transport.

MPI PHAST now takes a single integer argument. This argument specifies the number of transport calculations that will be run simultaneously. The total number of tranport calculations is equal to the number of components in the system, normally 6-20. Decreasing the number of simultaneous transport calculations will decrease the total memory footprint of a calculation. If memory is not an issue, use the default (no argument) to run all transport calculations simultaneously.

PHREEQC. The pitzer.dat database was revised for parameters associated with CO2 and CH4 to better fit experimental data for solubility of mixtures of the gases. An additional line of output was added for Donnan calculations.

IPhreeqc. Fixed a bug in the Fortran version that allowed logical variables (for example, print control variables) to be set to TRUE, but not back to FALSE.

August 24, 2015: Release of PHAST version 3, updates for all PHREEQC programs (version 3.2.2, svn 10160).

Initial release of PHAST version 3. The new PHAST is based on PhreeqcRM (Parkhurst and Wissmeier, 2015), which is an encapsulation of IPhreeqc designed specifically for operator-splitting reactive-transport models. Input and output are unchanged from PHAST version 2, so version 3 should be backward compatible with previous PHAST input files; however, the coupling with PHREEQC has been completely revised using PhreeqcRM. PHAST version 3 includes parallelization by either OpenMP or MPI. For Windows, MSMPI is installed with both the GUI [Phast4Windows (P4W)] and the batch PHAST versions. Either OpenMP or MPI can be run with P4W; to date, the MPI version appears to be more efficient. The Linux version of PHAST must be compiled. Configure is included to tailor a Makefile for your system. Detailed explanations for compilation for Linux and Windows are included in the README file.

PhreeqcRM. Note that version 3.2.1 fixed a serious bug in units conversion when using mg/L and transporting H2O as a component. A bug that occurred when running the PhreeqcRM examples in debug mode has been fixed. A bottleneck in RM_GetBackwardMapping has been eliminated. The default rebalance fraction has been changed to 0.0. Exception handling was expanded to give more error messages.

PHREEQC. Some source files have been relocated to a new directory “common”. Pitzer.dat parameters were adjusted to fit CO2 pressure and density better by changing Vm, an analytical expression, and adding a CO2-CO2 interaction parameter. A bug in the enrichment factor calculation for diffusion in the diffuse layer of surfaces was corrected. A bug related to MacInnis scaling in the absence of K-Cl interaction coefficients was corrected. New Basic function EDL_SPECIES returns the moles of species in the electrical double layer. The new function applies when -DONNAN or -DIFFUSE_LAYER is defined in SURFACE calculations [EDL_SPECIES(surf$, count, name$, moles, area, thickness), see RELEASE.txt for details.

IPhreeqc and PhreeqcI were updated to the latest version of PHREEQC.

July 7, 2015: PhreeqcRM bug fix (version 3.2.1, svn 9937).

A units conversion error has been corrected. The error occurred in Concentrations2Solutions when using mg/L and H2O as a component.

June 10, 2015: PhreeqcRM is released. Updates to PHREEQC, PhreeqcI, and IPhreeqc (version 3.2.0, svn 9820).

(1) PhreeqcRM is released. PhreeqcRM is a module for use as a reaction engine for operator-splitting reactive-transport models. PhreeqcRM has just been accepted by Advances in Water Resources (Parkhurst and Wissmeier, 2015). The abstract follows:

PhreeqcRM is a geochemical reaction module designed specifically to perform equilibrium and kinetic reaction calculations for reactive transport simulators that use an operator-splitting approach. The basic function of the reaction module is to take component concentrations from the model cells of the transport simulator, run geochemical reactions, and return updated component concentrations to the transport simulator. If multicomponent diffusion is modeled (e.g., Nernst-Planck equation), then aqueous species concentrations can be used instead of component concentrations. The reaction capabilities are a complete implementation of the reaction capabilities of PHREEQC. In each cell, the reaction module maintains the composition of all of the reactants, which may include minerals, exchangers, surface complexers, gas phases, solid solutions, and user-defined kinetic reactants.

PhreeqcRM assigns initial and boundary conditions for model cells based on standard PHREEQC input definitions (files or strings) of chemical compositions of solutions and reactants. Additional PhreeqcRM capabilities include methods to eliminate reaction calculations for inactive parts of a model domain, transfer concentrations and other model properties, and retrieve selected results. The module demonstrates good scalability for parallel processing by using multiprocessing with MPI (Message Passing Interface) on distributed memory systems, and limited scalability using multithreading with OpenMP on shared memory systems. PhreeqcRM is written in C++, but interfaces allow methods to be called from C or Fortran. By using the PhreeqcRM reaction module, an existing multicomponent transport simulator can be extended to simulate a wide range of geochemical reactions. Results of the implementation of PhreeqcRM as the reaction engine for transport simulators PHAST and FEFLOW are shown by using an analytical solution and the reactive transport benchmark of MoMaS.

Several important changes in the PHREEQC series of programs have been made:

(2) Thanks to Jonathon Toner for frezchem.dat, a new database is included for low temperature (including subzero) calculations using the Pitzer approach [Toner, J. D., and R. S. Sletten (2013), and the work of Marion and coworkers, for example, Marion, G. M., and S. A. Grant (1994)].

(3) The database sit.dat has been updated to the latest version released at www.thermochimie-tdb.com. In addition, the numerical method for SIT calculations in PHREEQC has been revised. Calculations should be somewhat faster, and redox calculations should be more robust. However, SIT calculations remain considerably slower than calculations with ion-association models (for example, phreeqc.dat, wateq4f.dat, llnl.dat, or minteq.v4.dat).

(4) The pitzer.dat database has been revised to include the element silicon. In addition, temperature dependence of some parameters has been revised to better fit experimental data for calcite solubility. Thanks to Wouter Falkena and the MoReS team for optimizations of the Pitzer calculation.

(5) The module IPhreeqc has been revised when using Fortran. IPhreeqc is now a Fortran “module”. The old IPhreeqc.f.inc and IPhreeqc.f90.inc files are no longer used to define the interfaces for the subroutines of IPhreeqc. The include files (.inc) are now replaced with “USE” statements (USE IPhreeqc). In addition, an interface file (IPhreeqc_interface.F90) must be included in the user’s Fortran project. IPhreeqc now uses ISO_C_BINDING, which is available in the Fortran 2003 standard. Use of this standard removes some ambiguities in argument types when calling C.

(6) CMake (Windows) and configure (Linux) files are now available for compilation of PHREEQC and IPhreeqc. The process of generating a Visual Studio solution using CMake or a Unix Makefile using configure is described in the README files for PHREEQC (batch version) and the module IPhreeqc. A batch executable is no longer provided for PHREEQC for Linux; compilation is required. Similarly, no libraries are provided for IPhreeqc for Windows or Linux; again, compilation is required. The installation and use of IPhreeqcCOM is unchanged.

(7) RATES definitions were revised in all databases. The area parameter for rate expressions was changed to specific area (L^2/mol), whereas previously, absolute area (L^2) was used. The Basic statements in RATES were changed accordingly. The reason for the change is related to the use of PHREEQC in reactive transport calculations. It is easier to scale the reaction rate if specific area is used.

(8) Multiple bug fixes are included in the version 3.2.0, see the file RELEASE in the program distributions for details.

February 10, 2015: Mac version of PHREEQC, version 3.1.7, svn 9213

The batch version of PHREEQC (3.17, svn 9213) has been compiled for Mac computers.

January 28, 2015: New releases of PHREEQC, PhreeqcI, and IPhreeqc, version 3.1.7, svn 9213

An error occurred when an empty string was sent to IPhreeqc from Fortran.

January 21, 2015: New releases of PHREEQC, PhreeqcI, and IPhreeqc, version 3.1.6, svn 9191

Two uninitialized variable bugs have been fixed (NameDouble and cxxPPassemblage), and a missing file for Windows compilation of IPhreeqc has been added to the “any” distribution.

December 18, 2014: New releases of PHREEQC, PhreeqcI, and IPhreeqc, version 3.1.5, svn 9113

Several bugs have been fixed, and a new Basic function (DIFF_C, diffusion coefficient for an aqueous species) has been added. Warnings reported by CRAN for the R version of PHREEQC have been fixed. An error that caused incorrect interface files for Netpath has been corrected. A bug related to switching among multiple sets of KINETIC reactants was fixed. An error occurred if USER_PUNCH had no Basic commands associated with it.

August 20, 2014: New releases of PHREEQC, PhreeqcI, and IPhreeqc, version 3.1.4, svn 8929

Three bugs were corrected: (1) The time was not reset when a batch kinetic simulation was followed by a transport simulation. (2) The acentric factor for H2(g), and the uncoupled redox equivalent, Hdg(g), had the wrong sign; the correct factor is -0.225. (3) A mixing calculation with gases (undocumented GAS_PHASE_MIX) treated the molar volumes as an extensive variable instead of an intensive variable.

August 6, 2014: IPhreeqc ported to R. New releases of all PHREEQC and PHAST programs, svn 8914

PHREEQC can now be run in R by using methods derived from IPhreeqc. The “phreeqc” package for R can be downloaded from CRAN (http://cran.r-project.org). Help and a series of examples are available to get started.

PHREEQC updates. Systematic elimination of memory leaks, unitialized variables, variables set and not used, and other errors detected by Valgrind and Visual Studio. The current version fixes several bugs and makes modifications: (1) error reading a dump file that had a SURFACE_RAW definition using -no_edl; (2) incorrect relative dielectric constant calculation; (3) Basic function LK_SPECIES revised to use the equation defined in SOLUTION_SPECIES; (4) isotope uncertainties in INVERSE_MODELING and default values for H and O redox states; (5) internally defined reactants with negative user numbers are no longer DUMP’d; (6) modifications to meet R requirements for I/O; (7) error in redefinition of a SIT or Pitzer parameter; (8) incorrect pressure in a mixture of gases; and (9) NULL pointer under some conditions when an element of a gas component was missing from the system.

IPhreeqc updates. Modifications for R version. Systematic elimination of memory leaks, unitialized variables, variables set and not used, and other errors detected by Valgrind and Visual Studio.

PHAST updates. Fixed a bug that occurred when an element in a gas phase was missing from the system.

March 17, 2014: New users’ forum at http://www.phreeqcusers.org

A PHREEQC user’s forum has been established at http://www.phreeqcusers.org. Use the forum to search for answers, ask questions, answer questions, post PHREEQC input examples, and describe research using PHREEQC and PHAST.

March 3, 2014 (SVN8538): PHREEQC, PhreeqcI, and IPhreeqc, Version 3.1.2; Phast Version 2.4.6; and Phast4Windows, version 1.0.8

PHREEQC, PhreeqcI, IPhreeqc:

Modified TRANSPORT to allow unequal cell sizes in diffusion calculations, including multicomponent diffusion (MCD).

Updated Li molar volume in pitzer.dat, Amm.dat, and phreeqc.dat.

The logic for connecting points in USER_GRAPH was revised, and yellow was eliminated as a graph color because it was difficult to see on some monitors.

Changed fixed-pressure gas phases to use the pressure set by REACTION_PRESSURE for reaction calculations.

Changed DUMP to avoid dumping entities (SOLTUION, EXCHANGE, EQUILIBRIUM_PHASES, etc.) that have negative user numbers. These are temporary copies that need not be dumped, and could cause an error when read from a dump file under some conditions.

Note November 27, 2013 entry about the new capability for multiple selected output definitions. IPhreeqc has several new methods to allow the use of two or more SELECTED_OUTPUT data blocks with unique user numbers.

Fixed bugs that could lead to incorrect values for density, pressure, and solution volume that are stored after a reaction calculation. Several other bug fixes in PHREEQC and IPhreeqc, some of which caused crashes. See the file RELEASE.TXT for more details.

Phast and Phast4Windows:

Changed the river boundary condition. Previously, it was an error for the head in a river to be below the bottom of the river. Now if the head in the river is set below the bottom of the river, the river is treated as a drain, where water flows to the river if the head in the aquifer is above the river bottom, but no water flows from the river to the aquifer if the head in the aquifer is below the river bottom. One application of this new feature is modeling tidal fluctuations.

Several bug fixes in Phast and P4W, some of which caused crashes. See the file RELEASE for more details.

December 6, 2013 (SVN8288): PHREEQC, PhreeqcI, and IPhreeqc, Version 3.1.1

PHREEQC, PhreeqcI, IPhreeqc:

Fixed a bug in the handling of multiple selected outputs in IPhreeqc. The logic was incorrect for some redefinitions of a selected output data block of a given number.

November 27, 2013 (SVN8264): PHREEQC, PhreeqcI, and IPhreeqc, Version 3.1.0

PHREEQC:

phreeqc3.chm

A revised version of the manual is now distributed as a compiled HTML file (phreeqc3.chm). It has corrections and new features highlighted in forest green.

Updated molar volumes of aqueous species: phreeqc.dat, Amm.dat, and Pitzer.dat

Description of the molar volume approach and parameters for major ions are published in Appelo, Parkhurst, and Post, 2013, Geochimica et Cosmochimica Acta, v. 125, p. 49-67. Molar volumes were fit or estimated for several other aqueous species, including Mn +2 , Al +3 , PO 4 -3 , F - , Li + , Br - , Zn +2 , Cd +2 , Cu +2 , NH 4 + , HPO 4 -2 , H 2 PO 4 - , H 3 PO 4 , and some related ion pairs and complexes. Ion size parameters were estimated for many of the ion pairs and complexes.

Multiple SELECTED_OUTPUT n and USER_PUNCH n .

SELECTED_OUTPUT 1 has the same functionality as previous versions of SELECTED_OUTPUT , with a set of default print definitions. SELECTED_OUTPUT n , where n is not equal to 1, has no fields initially defined; it is equivalent to an automatic -reset false.

A file may be defined for each SELECTED_OUTPUT n that will recieve the output from the data block. Using i to represent a specific integer, USER_PUNCH i will write to the file defined for SELECTED_OUTPUT i . If USER_PUNCH i is defined, but SELECTED_OUTPUT i is not, no data will be written from USER_PUNCH i .

Printing to the selected-output files is controlled by three identifiers. PRINT ; -selected_output true/false will enable/disable printing of all selected-output files. For an individual SELECTED_OUTPUT i definition, -active true/false will enable/disable both SELECTED_OUTPUT i and USER_PUNCH i . Again for SELECTED_OUTPUT i , -user_punch true/false will enable/disable the USER_PUNCH i data (rarely used).

If SELECTED_OUTPUT i has been defined, a new data block of SELECTED_OUTPUT i will retain the previous definition if only -active and (or) -user_punch are defined. Defining any other identifier will cause the old definiton to be removed and its file closed; the data for SELECTED_OUTPUT i will be defined entirely by the new data block.

New Basic functions

Added Basic fuction EQUIV_FRAC("AlX3", eq, x$) that returns the equivalent fraction of a surface or exchange species and sets the number of equvalents for the species (eq), in this case 3, and the name of the exchanger or surface (x$), in this case “X”.

Added Basic fuction KIN_TIME that returns the time interval in seconds of the last kinetic integration.

Added Basic fuction SPECIES_FORMULA$(name$, count_s, elt$, coef) that returns the type of the species and sets the arguments to the stoichiometry of an aqueous, exchange, or surface species. Count_s is the number of elements, elt$(i) is a character string of the ith element, and coef(i) is the stoichiometric coefficient of the ith element.

Added Basic function STR_F$(x, w, d) that produces a string from a number with a given width (w) and number of decimal places (d).

Added Basic function STR_E$(x, w, d) that produces a string with exponential format from a number with a given width (w) and number of decimal places (d).

New option for PRINT

Identifier -high_precision was added to the PRINT data block to allow higher precision for the PRINT Basic command, which is generally used in USER_PRINT definitions. High precision for selected-ouput files is controlled by the -high_precision option of the SELECTED_OUTPUT data block.

Addition of a temperature-dependent pressure correction for the Debye-Hückel term in the Pitzer formulation

An empirical, temperature-dependent pressure correction has been introduced in the Debye-Hückel part of Pitzer's equation for activity coefficient (gamma), which lets the factor B vary from 1.2 to 1. Pitzer defined this number to be 1.2 for all pressures and temperatures.

Bug fixes

(1) IMPORTANT : There was an error in accounting for pressure dependence when Pitzer or SIT aqueous model was used. The pressure dependence was not calculated if the pressure was changed, but the temperature was not.

(2) The manual wording was wrong or confusing in some places regarding the difference between fugacity (F) and (partial) pressure (P) of a gas. For ideal gases, F = P / 1 atm (unitless). However for Peng-Robinson gases F = P * phi / 1 atm (unitless). In EQUILIBRIUM_PHASES , the target saturation index for a gas is log10(P). In SELECTED_OUTPUT -saturation_index, for gases, the value printed will be the fugacity. For Basic functions SI and SR, the values are based on the fugacity. P and phi can be obtained with the Basic functions PR_P and PR_PHI. For the Saturation Index block of the output file, the SI for a gas is its fugacity. However, for Peng-Robinson gases, P and phi are appended to the output line for the gas.

(3) SOLUTION_MODIFY and SOLUTION_RAW were missing the -pressure identifier. It has now been added.

(4) Trapped error when solid-solution components were not defined correctly.

(5) Basic function SYS("phases",...) returned 0.0, rather than the maximum saturation index if the maximum saturation index was less than zero. Now returns the maximum saturation index even if it is less than zero.

(6) Fixed bug with isotopes. Moles and molalities were incorrect if the mass of water in the SOLUTION was not 1.0.

(7) GAS_PHASE processing was incorrect for fixed-volume gas with multiple components. The wrong number of moles of gas for some gas components was calculated.

IPhreeqc:

New Callback function

A Basic function, CALLBACK, has been added which allows data be passed between the calling program and Basic programs (usually, USER_PUNCH and RATES). The function is not useful for PHREEQC or PhreeqcI.

The new IPhreeqc method is for C,

iresult = SetBasicCallback(ID, function name, cookie)

and Fortran,

iresult = SetBasicFortranCallback(ID, function name)

Two methods are necessary because arguments are handled differenctly between C and Fortran. The void pointer cookie in the C callback can be used by the user-defined callback function to find necessary data. The user-defined callback function is called whenever the Basic function CALLBACK is encountered. The use of the callback function is strictly developer designed.

Usage of the callback feature has been added to the IPhreeqc example advect for Fortran, C, and C++. Additional documentation is in the .chm documentation files for IPhreeqc. The callback also has been implemented in the COM version, with examples for VBA (Excel), VBS, and Python.

Implementation of multiple selected-output files in IPhreeqc

The capability to use multiple SELECTED_OUTPUT and USER_PUNCH data blocks has been implemented in IPhreeqc with four new methods.

SetCurrentSelectedOutputUserNumber(n), where n is the user number assigned in a SELECTED_OUTPUT n data block.

GetCurrentSelectedOutputUserNumber(), returns the user number of the selected-output currently being processed. For example, it is the user number of the selected-output definition which is currently accessed by GetSelectedOutputValue.

GetSelectedOutputCount(), returns the number of selected-output data blocks that are currently defined.

GetIthSelectedOutputUserNumber(i), returns the user number for the ith selected-output definition.

PhreeqcI:

New features

Modified chart handling for PhreeqcI to allow charts from multiple runs to remain open for comparison. Charts will remain visible until closed or the PhreeqcI session is closed.

Multiple SELECTED_OUTPUT and USER_PUNCH data blocks.

New identifiers, -active t/f and -user_punch t/f, for SELECTED_OUTPUT .

New functions EQ_FRAC, KIN_TIME, SPECIES_FORMULA$, STR_F$, STR_E$.

New identifier for PRINT , -high_precision , controls output PRINT statements in USER_PRINT .

Bug fixes

USER_GRAPH did not import and export all data correctly from the edit screen.

August 1, 2013 (SVN 7869): NetpathXL 1.4.0

NetpathXL was revised to implement the method of Han and Plummer for groundwater carbon-14 age dating (Han, L.F., and Plummer, L.N., 2013, Revision of Fontes & Garnier’s model for the initial 14C content of dissolved inorganic carbon used in groundwater dating: Chemical Geology, v. 351, p. 105-114.) By selecting “Do Rayleigh calculations?” and “Model for initial C14” from the Edit screen, it is possible then to generate an Excel spreadsheet that calculates the Han and Plummer model. All data are plotted, and adjustments can be made to the Tamers Point and the isotopic composition of the UZ gas and solid carbonate phases.

NetpathXL and DBXL were updated to allow use of .xlsx files in addition to .xls files.

June 4, 2013 (SVN 7757): Optimizations and bug fixes for PHREEQC 3.0.6, PhreeqcI 3.0.6, and IPhreeqc 3.0.6

PHREEQC: Version 3.0.5 introduced a bug in DELETE that occurred when at least two DELETE keywords were read in a run. Fixed a bug with fixed pressure gas, where the volume was 1.0 even when no moles of gas were present in the gas phase. Minor optimizations that minimize initialization of Peng-Robinson gas data.

May 31, 2013 (SVN 7748): Optimizations and bug fixes for PHREEQC 3.0.5, PhreeqcI 3.0.5, and IPhreeqc 3.0.5

PHREEQC: Optimizations relative for equilibrium phases using pointers instead of lookup function with speedup up to a factor of two in some cases. Other optimizations for SURFACE calculations to limit use of std:map find, eliminate strcmp’s, and skip inverse setup when not needed, and a few others. Minor fix to Peng Robinson. Fixed bug if SOLUTION_MODIFY set a concentration to zero. Removed a lower limit on ionic strength.

IPhreeqc: Now has latest version of PHREEQC with corresponding optimizations.

PhreeqcI: Updated to latest PHREEQC. DUMP was not handling data correctly and was missing the file and append options. DELETE was modified to correct errors.

May 14, 2013 (SVN 7711): Bug fixes for PHREEQC 3.0.4, PhreeqcI 3.0.4, and IPhreeqc 3.0.4

PHREEQC: Added new basic function KIN_TIME, which givs the time interval in seconds of the last kinetic integration period; KIN_DELTA("xxx")/KIN_TIME will give the average kinetic rate over the time interval for reaction xxx. PhreeqcI: Fixed bug that caused no warnings to be included in the output file or output screen.

April 30, 2013 (SVN 7671): Bug fixes for PHREEQC 3.0.3, PhreeqcI 3.0.3, IPhreeqc 3.0.3, Phast 2.4.4, and Phast4Windows 1.0.6

PHREEQC: fixed errors in GAS_PHASE, -fixed_pressure used the sum of the input pressures instead of the defined total pressure in some cases, set upper limits in PR calculations; revised Basic function LK_SPECIES; logic for printing status line revised; fixed bug in SOLUTION_SPREAD, mass of water was not read properly; fixed problem with spaces in output file name; revised logic for checking if opening files was successful, old C-style check was incorrect; revised molar volume definitions and selected parameters in databases phreeqc.dat, Amm.dat, and pitzer.dat.

PhreeqcI: Added CLCULATE_VALUES keyword; fixed redraw-of-screen bug that occurred when a .pqi file was double-clicked; made registry keypaths unique for each build.

IPhreeqc: Based on latest PHREEQC (3.0.3); revised to make qsort and static map of IPhreeqc instances thread safe.

PHAST: Made registry keypaths unique for each build.

Phast4Windows: Made registry keypaths unique for each build.

April 4, 2013 (SVN 7614): Bug fixes for PHREEQC 3.0.2, PhreeqcI 3.0.2, IPhreeqc 3.0.2, Phast 2.4.3, and Phast4Windows 1.0.5

PHREEQC: fixed an initialization error for activity of water that caused slow convergence. Dump wrote a file that caused read errors when some names exceeded 21 characters. Gas_phase_modify did not work correctly.

PhreeqcI: Fixed installer to work with all .NET versions.

IPhreeqc: Based on latest PHREEQC (3.0.2).

PHAST: Restart option was broken. Set stack size to allow larger models.

Phast4Windows: CHEMISTRY_IC did not have restart option. Output screen is monospaced and resizable. Some features did not scale properly at startup.

March 21, 2013 (SVN 7561): Bug fixes for PHREEQC, PhreeqcI, IPhreeqc (3.0.1), Phast (2.4.2) , and Phast4Windows 1.0.4

PHREEQC, PhreeqcI, IPhreeqc: Fixed bug in printing of solid solutions that caused a crash. The pressure dependence of log K in the printout of the equilibrium phases assemblage in the saturation index list was incorrect.

Phast4Windows had a bug with the sitemap; the relative path to the sitemap file was not saved correctly and caused the program to abort if the file was not found. Drawing of prisms corrected when geometry was scaled in the Y direction. Run dialog is resizable. PHAST, additional error checking on initial conditions.

February 14, 2013: Release Phast4Windows 1.0.3 (svn 7462)

Phast4Windows had a serious bug that caused the program to terminate. If multiple (probably more than 10) items were defined (prisms, wedges, grid refinements, and others) the program would crash. The bug has been fixed and, hopefully, the new version is more robust.

February 1, 2013: Release of Version 3 of PHREEQC, PhreeqcI, IPhreeqc (svn 7430)

PHREEQC Version 3 is finally released. Major new features include pressure dependence for geochemical reactions, the nonideal gas formulation of Peng and Robinson, and charting. All features of PHREEQC Version 3 are documented in U.S. Geological Survey Techniques and Methods 6-A43, “Description of input and examples for PHREEQC Version 3--A computer program for speciation, batch-reaction, one-dimensional transport, and inverse geochemical calculations”, available at http://pubs.usgs.gov/tm/06/a43/. Features not previously documented include Pitzer and SIT aqueous models, CD-MUSIC surface complexation, isotopic capabilities, and new keyword data blocks to manipulate reactants, such as RUN_CELLS, DELETE, COPY, _MODIFY, _RAW, and DUMP.

PhreeqcI has been updated and allows the complete range of calculations and charting provided by Version 3. Most keyword data blocks of Version 3 can be defined with screen-driven input; help from the version 3 manual is implemented. A few data blocks are as yet unsupported; however, any legal input for PHREEQC Version 3 can be defined in the main edit screen of PhreeqcI, and the corresponding input file can be run from within the interface.

IPhreeqc libraries and COM have been updated to use PHREEQC Version 3 and all capabilities, including charting, have been implemented. Additional methods have been added for more complete handling of output; all output can now be obtained as string values and (or) written to file. Some enhancements have been made to streamline calculations and increase speed.

February 1, 2013: Release of PHAST and Phast4Windows Version 2.4.1 (svn 7430)

Both PHAST (Windows and Linux) and Phast4Windows have been revised to fix a bug in PHASTINPUT that occurred in some instances when a prism perimeter was defined with points. Another bug was fixed that occurred when wells were defined, but all were outside the model domain. Note that PHAST uses PHREEQC version 2, and has not yet been updated to PHREEQC version 3.

November 2, 2012: Release of Phast4Windows 1.0.1 and new versions of PHAST (svn 7048)

Phast4Windows (P4W) is a 3D Graphical User Interface (GUI) for the reactive-transport model PHAST. P4W (which runs only on Windows) and new batch versions of PHAST for Windows and Linux are available at the web site http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phast. A bug with using -depth in wells was fixed, problems with inability to see complete screen input were resolved, and a browse button was added for the database.

October 11, 2012: Release of Phast4Windows 1.0 and new versions of PHAST (svn 7006)

Phast4Windows (P4W) is a 3D Graphical User Interface (GUI) for the reactive-transport model PHAST. P4W (which runs only on Windows) and new batch versions of PHAST for Windows and Linux are available at the web site http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phast. Fixed one bug with PHAST to allow file names to have spaces; previously, the intermediate HDF5 did not allow spaces. Also fixed a bug with Model Viewer on some graphics cards, where cropping caused the face to turn black.

August 29, 2012: Release of Phast4Windows 1.0 and new versions of PHAST (svn 6937)

Phast4Windows (P4W) is a 3D Graphical User Interface (GUI) for the reactive-transport model PHAST. P4W (which runs only on Windows) and new batch versions of PHAST for Windows and Linux are available at the web site http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phast. A description of the program has been accepted for publication as a note in Ground Water. The intuitive GUI can be used to build simple or complex groundwater or reactive-transport models. Spatial features are grid independent and can be defined by drawing or by using ArcInfo coverages. Model features are visualized in 3D and can be zoomed, panned, and 3D rotated. Here is the abstract for the Ground Water Note:

Phast4Windows is a Windows® program for developing and running groundwater-flow and reactive-transport models with the PHAST simulator. This graphical user interface allows definition of grid-independent spatial distributions of model properties--the porous media properties, the initial head and chemistry conditions, boundary conditions, and locations of wells, rivers, drains, and accounting zones--and other parameters necessary for a simulation. Spatial data can be defined without reference to a grid by drawing, by point-by-point definitions, or by importing files, including ArcInfo® shape and raster files. All definitions can be inspected, edited, deleted, moved, copied, and switched from hidden to visible through the data tree of the interface. Model features are visualized in the main panel of the interface, so that it is possible to zoom, pan, and rotate features in three dimensions (3D). PHAST simulates single phase, constant density, saturated groundwater flow under confined or unconfined conditions. Reactions among multiple solutes include mineral equilibria, cation exchange, surface complexation, solid solutions, and general kinetic reactions. The interface can be used to develop and run simple or complex models, and is ideal for use in the classroom, for analysis of laboratory column experiments, and for development of field-scale simulations of geochemical processes and contaminant transport.

New features include (1) writing intermediate HDF files (prefix.intermediate.h5) , so that results can be obtained and visualized with Model Viewer before the simulation has completed, (2) capability to write chemical conditions as well as heads for ZONE_FLOW features; this capability can be used to set boundary head and chemical conditions for sub-model simulations, (3) an unlimited number of processes can now be used with MPI without recompilation, and (4) the directive INCLUDE$ can be used in the chemistry data file to include another file in the input stream (included files may also use INCLUDE$ directives). New features are described in more detail in the release notes.

Both 64- and 32-bit batch versions of PHAST are available, with serial and parallel (MPICH for Windows and OpenMPI for Linux) can be downloaded from the web site. A version with source code (version “any”) can be downloaded. It contains .configure for compilation on Unix systems.

May 30, 2012: Script for Mac version updated for OS 10.4-10.8 (Phreeqc version 2.18.3, svn 5570)

The script for the Mac version did not work for the most recent operating systems. The new script should work for OS 10.4 through 10.8. PHREEQC version remains 2.18.3, svn 5570.

April 13, 2012: IPhreeqc modules 2.18.4 (svn 6386)

The 64-bit version “any” IPhreeqc compiled on Linux did not produce the correct selected-output file. Version 2.18.4 fixes the problem.

August 16, 2011: PHREEQC, PhreeqcI, IPhreeqc modules 2.18.3 (svn 5570)

Minor revision for logic in setting the convergence tolerance. If -high_precision is set to true in SELECTED_OUTPUT , convergence tolerance is set to 1e-12. If -high_precision is set to false, convergence tolerance is not changed. With KNOBS , -convergence_tolerance tol sets the convergence tolerance to the specified number, tol . The last definition ( SELECTED_OUTPUT ; -high_precision true or KNOBS ; -convergence_tolerance tol ) takes precedence for a calculation.

July 14, 2011: IPhreeqc modules 2.18.2 (svn 5494)

Bug fixes for IPHREEQC modules and new sit.dat database. The keyword data block REACTION_MODIFY was missing from the modules. On some systems, reading a SOLUTION_MODIFY data block caused a read error. A revised sit.dat database is included in the module distributions. Release notes for the module (RELEASE-MODULE.txt) were added to the web page; this file is included in the module distribution as PHREEQCPP-RELEASE.txt in the doc directory of the installation (normally in /program files/usgs/IPhreeqc...).

April 8, 2011: IPhreeqc, PHREEQC, PhreeqcI, PHAST (svn 5314)

IPhreeqc modules-- IPhreeqc modules allow PHREEQC to be used in scripting and programming languages. The Windows COM module can be used in Excel macros, Matlab, and Python. DLL and Library modules can be linked to C, C++, and Fortran programs on Windows or Linux. A report is in press with Computers and Geosciences (Charlton, S.R., and Parkhurst, D.L., 2011, Modules based on the geochemical model PHREEQC for use in scripting and programming languages: Computers & Geosciences, doi:10.1016/j.cageo.2011.02.005.) The report and release notes describe new keyword data blocks: DUMP , RUN_CELLS , XXX_MODIFY , XXX_RAW , COPY , and DELETE , where XXX can be SOLUTION , EXCHANGE , SURFACE , EQUILIBRIUM_PHASES , SOLID_SOLUTIONS , GAS_PHASE , KINETICS , REACTION , TEMPERATURE , or MIX .

PHREEQC --Minor changes: Incorrect conversion to Kelvin, subscript error when solver failed, changed O2(g) Henry’s law constant in Amm.dat, iso.dat to llnl.dat constant, As(3) separated from As in sit.dat, added -dw parameters for MgCO3, MgHCO3, and MgSO4 in phreeqc.dat, new Basic functions EOL$, CEIL, FLOOR, TOTMOL, PLOT_XY, ISO, ISO_UNIT.

PhreeqcI --Minor bug fixes, added new Basic functions.

PHAST --Added new spatially distributed MEDIA property, -tortuosity, which is multiplied times the diffusion cofficient to allow variation in diffusivity among geologic units. However, this varying diffusivity applies to all aqueous species; PHAST does not allow species specific diffusivities. Other minor bug fixes.

September 8, 2010: NetpathXL 1.3.0 (svn 4808)

NetpathXL --Fixed bug that cause Excel not to be closed after trying to open a file that was not a NetpathXL file. Updated Intel Fortran Compiler to 11.1.054 in order to run correctly on Windows 7.

September 7, 2010: PHAST version 2.0.2 (svn 4799), PHREEQC 2.17.5 (svn 4799), and PhreeqcI 2.17.5 (svn 4799)

PHREEQC 2.17.5 --Revised handling of negative numbers raised to a power in Basic interpreter.

PhreeqcI 2.17.5 --Update to PHREEQC version 2.17.5.

PHAST 2.0.2 --Update to PHREEQC version 2.17.5.

September 2, 2010: PHAST version 2.0.1 (svn 4787), PHREEQC 2.17.4 (svn 4787), and PhreeqcI 2.17.4 (svn 4787)

PHREEQC 2.17.4 --Minor changes to make doc files consistent with the program. Added synonyms for Basic function TOTMOLE of TOTMOL and TOTMOLES. Fixed bug with negation of numbers raised to an exponent in Basic.

PhreeqcI 2.17.4 --Update to PHREEQC version 2.17.4.

PHAST 2.0.1 --Update to PHREEQC version 2.17.4.

August 12, 2010: PHAST version 2.0.0 (svn 4761), PHREEQC 2.17.3 (svn 4761), and PhreeqcI 2.17.3 (svn 4761)

PHAST 2.0 --Release of a new version of PHAST. Distributions of PHAST version 2 are available at http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phast/. Documentation is available in the distributions or from http://pubs.usgs.gov/tm/06A35/.

PHAST Version 2 has a number of enhancements to allow simpler definition of spatial information and to avoid grid-dependent (node-by-node) input definitions. Formerly, all spatial data were defined with rectangular zones. Now wedge-shaped and irregularly shaped volumes may be used to specify the hydrologic and chemical properties of regions within the model domain. Spatial data can be imported from ArcInfo shape and ASCII raster files and from a simple X, Y, Z file format. To accommodate a grid that is not aligned with the coordinate system of the imported files, it is possible to define features in map and grid coordinate systems within the same input file.

The definitions of leaky and flux boundary conditions have been modified to select only exterior faces within a specified volume of the model domain and to restrict the boundary conditions to the exact area of definition, which may include fractions of cell faces. Previously, flux and leaky boundary conditions were applied only to entire cell faces; thus, the area could vary as the model grid was refined and cell sizes changed.

New capabilities have been added to interpolate spatial data to the two- or three-dimensional locations of cells and elements. Two-dimensional interpolation is used to define surfaces for the tops and bottoms of three-dimensional regions within the model domain. Surfaces are created by two-dimensional interpolation of scattered X, Y points with associated elevation data. Within the bounds of the scattered points (the convex hull), natural neighbor interpolation is implemented, which uses an area weighting scheme to assign an elevation to a target point based on elevations at the nearest of the scattered points; outside the convex hull, the elevation of the closest point is assigned to a target point.

Three-dimensional scattered data can be used to define porous-media properties, boundary-condition properties, or initial conditions. Three-dimensional interpolation always assigns the value of the closest scattered point to a target point. The interpolation capabilities allow head and chemical data to be saved at the end of one run and used as initial conditions for a subsequent run, even if the grid spacing has been changed.

A new capability has been added to aggregate flows of water and solute into an arbitrarily shaped region and through the boundary-condition cells included in the region. Any number of flow aggregation regions may be defined. These regions need not be mutually exclusive, and regions can be combined to define larger, possibly noncontiguous regions. A facility exists to save heads as a function of time and space for these regions, which then can be used to specify boundary-condition heads in a subsequent run.

A drain boundary condition has been added. Drains function similarly to rivers, except they only discharge water from the aquifer. Drains are one-dimensional features with an associated width or diameter, which will accept water if the head in the aquifer is greater than the elevation of the drain. Drains have no time-dependent parameters.

Other changes implemented in PHAST Version 2 include a method for row scaling of the flow and transport equations to allow the definition of a single convergence tolerance for both flow and transport. Memory requirements for the chemistry processes in parallel processing have been minimized by elimination of most flow and transport storage. A start time other than zero may be defined. PHAST Version 2 includes many bug fixes and some other minor additions to the input files.

Windows and Linux have both 32-bit and 64-bit versions. The Intel Fortran compiler has been used for all versions, Linux and Windows. The parallel version of PHAST on Windows uses MPICH; both LAM (32-bit) and OPENMPI (32-bit and 64 bit) parallel versions are distributed for Linux. Configure has been included for generating Makefiles to compile PHAST. Use of configure should simplify compilation with different compilers and different sets of HDF, and OPENMPI libraries.

PHREEQC 2.17.3 --Fixed bugs in the NetpathXL interface. Dissolved oxygen concentration was converted incorrectly for .pat file; there was a possible buffer overwrite when reading file names from model.fil ; an extra line for an internal calculation (solution -7) was erroneously included in the selected output file . Fixed serious omission in SIT model; redox flags had not been set, so no redox calculations were possible. Redox in SIT now works correctly. SIT NaCl parameter was entered twice in sit.dat. Redefinition of SIT parameters in a subsequent data block did not work. Similarly, redefinition of PITZER parameters may not have worked correctly. In Pitzer model, initialized log gammas differently, tweaked convergence parameters, slightly revised method for both SIT and Pitzer. Minor fix to CVODE integration scheme. Added basic functions ISO, ISO_UNIT, and TOTMOLE.

PhreeqcI 2.17.3 --Added basic functions ISO, ISO_UNIT, and TOTMOLE. Fixed bug in SURFACE screen, where surface area was erroneously required for -no_edl, but it was not possible to set. Also fixed logic for graying and activating options on the SURFACE screen.

June 2, 2010: NetpathXL 1.2 (svn 4487)

NetpathXL/DBXL 1.2 --Fixed a bug in DBXL, which limited the number of wells to 50 rather than 400. Modified NetpathXL to ignore model files that lacked an initial or final solution. PHREEQC can produce models where all of the water is derived from minerals, in which case, only the final solution is involved in the model. If the model is saved from PHREEQC for use in NetpathXL, NetpathXL crashed when reading the model file; now, the model file is rejected.

May 27, 2010: PhreeqcI 2.17.1 (svn 4468)

PhreeqcI 2.17.1 --Fixed a serious bug with Basic programs. PhreeqcI would crash on mismatched parentheses in any Basic programs.

February 25, 2010: PHREEQC 2.17.0 and PhreeqcI 2.17.0 (svn 4137)

PHREEQC 2.17 --Enhancements to PHREEQC capabilities are described in the file RELEASE.TXT, which is included in the distributions. Major modifications to PHREEQC for version 2.17 include:

(1) Addition of the SIT (specific interaction theory) aqueous model as described in Grenthe, Ingmar, Plyasunov, A.V., and Spahiu, Kastriot (1997) ( SIT keyword data block). A SIT database is included in the distributions, which was developed by Amphos 21, BRGM and HydrAsa for ANDRA, the French National Radioactive Waste Management Agency.

(2) An additional T^2 term has been added to all analytic expressions for temperature dependence including log Ks, Pitzer parameters, and SIT parameters. No databases currently use this capability.

(3) An active fraction model for calculating exchange compositions (Appelo (1994)) has been added ( EXCHANGE ).

(4) A precipitate-only option has been added for mineral reactions ( EQUILIBRIUM_PHASES ), contrasting with the previously availabe capability to dissolve only.

(5) Solution density is now calculated when using the phreeqc.dat database and can be retrieved with the basic function RHO . Vincent Post implemented the method of Millero (1974, 2000, 2001).

(6) Specific conductance of the solution is now calculated at the solution temperature (Appelo).

(7) Enhanced modeling of the diffusion of cations through clay interlayers (Appelo) in the TRANSPORT data block ( -interlayer_d ).

(8) Added an option for time-substepping in multicomponent diffusion ( -multi_D true), keyword TRANSPORT .

(9) Basic functions to return activity coefficient (for example, gamma (“H+”)) and log10 activity coefficient (for examle, lg (“H+)”.

(10) Additional error messages for errors in Basic programs.

(11) Additional capabilities were added to the Basic function EDL to retreive properties of surfaces when the CDMUSIC surface complexation model is used.

(12) Although not complete, the iso.dat database has been expanded to include more species.

(13) Bug fixes for numerous minor problems.

PhreeqcI 2.17 --PhreeqcI has been updated to handle input all capabilities included in the PITZER , SIT , and TRANSPORT data blocks. All analytic expressions for temperature dependence include a T^2 term. Several obscure, but long-standing bugs have been corrected.

March 23, 2008: NetpathXL 1.1, PHAST (1.5.1), WPHAST (0.6.1)

NetpathXL is officially released. NetpathXL uses an Excel spreadsheet for data entry for the program Netpath. Netpath is an inverse geochemical model used to develop mass-balance models accounting for the change in composition between two waters by dissolution and precipitation of minerals and gases. Netpath can be used to account for isotopic evolution of solution compositions and to calculate carbon-14 ground-water ages. Only data entry is changed in NetpathXL; model development and the calculation engine are unchanged from Netpath.

PHAST--a bug with keeping track of surface charge was corrected. This bug seemed to be most significant for the -no_edl option of SURFACEs. WPHAST was changed to be consistent with the latest version of PHAST. See file RELEASE for details.

February 5, 2008--svn 2697: PHREEQC (2.15.0), PhreeqcI (2.15.0), PHAST (1.5.0), WPHAST (0.6.0)

PHREEQC--Changed compilation to be more compatible with Linux systems by using the older hash system. Added parameters for CVODE integration in KINETICS. -bad_step_max bad_steps--the maximum number of times that PHREEQC will invoke CVODE; -cvode_steps steps--the maximum number of steps that will taken during one invocation of CVODE; -cvode_order order--the number of terms in extrapolation of rates. Added options to INVERSE_MODELING to transfer dat and models to NetpathXL (-lon_netpath, -pat_netpath). See file RELEASE for details.

PHAST--Changed compilation to be more compatible with Linux systems by using the older hash system. Added alternate rebalance strategy for parallel processing SOLTUION_METHOD; -rebalance_by_cell T/F. See file RELEASE for details.

November 20, 2007, svn 2411: PHREEQC (2.14.3), PhreeqcI (2.14.3), PHAST (1.4.2), WPHAST (0.5.2)

PHREEQC--Added new parameters to Pitzer formulation, MU and ETA, for uncharged species; also, new option -use_etheta can be used to turn off unsymmetric mixing terms in the Pitzer formulation. PHAST--Modified restart capability. Restart files now are saved as gzip files to minmize file size. Ascii or gzip restart files can be read. Also fixed a bug and rewrote restart file handling to allow restart files to work with larger problems (more cells). Minor bug fixes in all programs.

September 17, 2007, svn 2265: PhreeqcI (2.14.2)

PhreeqcI major bug fix. A bug in memory management was introduced in version 2.14. Version 2.14.0 and 2.14.1 are affected by the error. Please update to PhreeqcI 2.14.2.

September 5, 2007, svn 2227: PHREEQC (2.14.1), PhreeqcI (2.14.1), PHAST (1.4.1), WPHAST (0.5.1)

PHREEQC multicomponent diffusion adjust diffuse layer transport to be charge balanced. Fixed bug in WPhast that did not set chemistry dimensions correctly when reading from an h5 file.

August 30, 2007, svn 2217: PHREEQC (2.14.0), PhreeqcI (2.14.0), PHAST (1.3.4), WPHAST (0.4.6)

This release fixes bugs and updates versions of third-party software. The only new feature is a capability to specify a start time for PHAST simulations; previously, all simulations began at time zero.

PHREEQC--fixed bugs in Multicomponent Diffusion, fixed memory errors for rerunning in PhreeqcI and Phreeqc for Windows, restructured compile options for memory checking and initialization of malloced space, and made code changes to optimize speed of execution.

PhreeqcI--minor updates and bug fixes.

PHAST--Added option for start time other than zero (TIME_CONTROL; -start_time). Updated to HDF 1.6.5 for PHAST (serial and parallel) and Model Viewer. Updated to MPICH2 (1.0.5p2) for Windows parallel version. Fixed several minor bugs.

February 23, 2007: WPhast (0.4.4) (SVN 1813)

Permanent fix to a bug that caused WPhast to crash when defining a river. If a zone (media properties, boundary conditions, or initial conditions) was defined followed by a river definition, a memory error caused the program to stop and all data was lost back to the last “save”. The new version fixes the problem. The only work around for versions prior to 0.4.3 is to save often and enter rivers before any zone definitions.

February 22, 2007: WPhast (0.4.3) (SVN 1809)

Fixed a bug that caused WPhast to crash when defining a river. If a zone (media properties, boundary conditions, or initial conditions) was defined followed by a river definition, a memory error caused the program to stop and all data was lost back to the last “save”. The new version eliminates the crash, but more work is needed to get to the root of the problem. The only work around for older versions is to save often and enter rivers before any zone definitions.

February 15, 2007: PHREEQC (2.13.3) (SVN 1802)

PHREEQC (batch version) for Windows, Linux, and Unix are released at SVN level 1802. This version includes the phreeqd.dat file that contains diffusion coefficients for multicomponent diffusion. This file was inadvertantly left out of the earlier batch versions of 2.13.

February 1, 2007: PHREEQC (2.13.2), PhreeqcI (2.13.2), PHAST (1.4.2), and WPhast (0.4.2) (SVN 1727)

PHREEQC (batch version) and PhreeqcI (GUI) versions 2.13.2 are released at SVN level 1727. This version fixes bugs in (1) mobile and immobile zone handling of redox element names in multicomponent diffusion, (2) dissolve_only option of EQUILIBRIUM_PHASES with ADVECTION, See release notes for versions 2.13.0 and 2.13.1 below for other updates relative to version 2.12.

PHAST (batch version) version 1.4.2 and WPhast version 0.4.2 are released at SVN level 1727 to include the latest PHREEQC. See release notes below for new features in PHAST and descriptions of the GUIs Gophast and WPhast.

January 16, 2007: PHREEQC (2.13.1), PhreeqcI (2.13.1), PHAST (1.4.1), and WPhast (0.4.1) (SVN 1611)

PHREEQC (batch version) and PhreeqcI (GUI) versions 2.13.1 are released at SVN level 1611. This version fixes bugs in (1) use of GAS_PHASE with the Pitzer model, (2) dissolve_only option of EQUILIBRIUM_PHASES in stagnant zones, (3) a logic error in 2.13 that caused slow execution (results were correct), and (4) oscillations in multicomponent diffusion.

Major new features for 2.13 include (1) 1D transport with multicomponent diffusion; (2) surface complexation with the CD-MUSIC model; and (3) redox reactions have been enabled with the Pitzer model, but no database that uses this capability is included. Details of new features are included in the file RELEASE.TXT in the distribution directory, which is normally a subdirectory of c:\Program Files\USGS\ for Windows versions.

PHAST (batch version) versions 1.4 is released at SVN level 1611 to include the latest PHREEQC. The major new feature for PHAST 1.4 is the capability to write the chemical condition of the domain to a file (PRINT_FREQUENCY; -restart 1 yr), which can then be used to establish initial conditions for subsequent runs (CHEMISTRY_IC; -zone; -solution restart restart_file). The new CD-MUSIC surface complexation features of PHREEQC are available in PHAST (as are all reactions of PHREEQC). Details of new features are included in the file RELEASE.1611 in the distribution directory, which is normally a subdirectory of c:\Program Files\USGS\ for Windows versions.

WPhast 0.4.1 is updated to the latest PHAST (SVN 1611). WPhast is a test version graphical user interface for PHAST written by Scott Charlton. This GUI runs only on Windows computers. The interface is good for developing quick simple models. It does not handle irregularly shaped regions as well as GoPhast. You can generate the .trans.dat file and run PHAST from within the interface. The .chem.dat files can be generated with PhreeqcI, Phreeqc For Windows, or an editor. You must install the batch version of PHAST to be able to use the utilities Model Viewer and PhastHDF, which are useful for any modeling effort with PHAST.

GoPhast is a graphical user interface for PHAST written by Rich Winston. It is available at http://water.usgs.gov/nrp/gwsoftware/GoPhast/GoPhast.html. This GUI will run on Windows or Linux computers. The interface is particularly good at representing irregular regions. It generates the .trans.dat file. You must install the batch version of PHAST to run the model and to install the utilities Model Viewer and PhastHDF. The .chem.dat files can be generated with PhreeqcI, Phreeqc For Windows, or an editor.

November 20, 2006: PHAST, GoPhast, and WPhast

PHAST (batch version) versions 1.4 is released at SVN level 1497. The major new feature for PHAST is the capability to write the chemical condition of the domain to a file (PRINT_FREQUENCY; -restart 1 yr), which can then be used to establish initial conditions for subsequent runs (CHEMISTRY_IC; -zone; -solution restart restart_file). The new CD-MUSIC surface complexation feature of PHREEQC are available in PHAST (as are all reactions of PHREEQC). Details of new features are included in the file RELEASE.1497 in the distribution directory, which is normally a subdirectory of c:\Program Files\USGS\.

GoPhast is a graphical user interface for PHAST written by Rich Winston. It is available at http://water.usgs.gov/nrp/gwsoftware/GoPhast/GoPhast.html. This GUI will run on Windows or Linux computers. The interface is particularly good at representing irregular regions. It generates the .trans.dat file. The batch version of PHAST is necessary to run the model and to install the utilities Model Viewer and PhastHDF. The .chem.dat files can be generated with PhreeqcI, Phreeqc For Windows, or an editor.

WPhast is a test version graphical user interface for PHAST written by Scott Charlton. This GUI runs only on Windows computers. The interface is good for developing quick simple models. It does not handle irregularly shaped regions as well as GoPhast. You can generate the .trans.dat file and run PHAST from within the interface. The .chem.dat files can be generated with PhreeqcI, Phreeqc For Windows, or an editor. The batch version of PHAST is needed to install the utilities Model Viewer and PhastHDF, which will be useful for any modeling effort.

November 20, 2006: PHREEQC, PhreeqcI, rereleased

PHREEQC (batch version) and PhreeqcI (GUI) versions 2.13 are released at SVN level 1497.

Major new features include (1) 1D transport with multicomponent diffusion; (2) surface complexation with the CD-MUSIC model; and (3) redox reactions have been enabled with the Pitzer model, but no database that uses this capability is included. Details of new features are included in the file RELEASE.TXT in the distribution directory, which is normally a subdirectory of c:\Program Files\USGS\.

November 16, 2005: PhreeqcI, PHAST, PHREEQC rereleased

All PHREEQC and PHAST programs were rebuilt for distribution. Several bugs and installation errors have been fixed over the last month. All programs are now at subversion level 669.

October 17, 2005: Phreeqc 2.12-603 Linux, Static link of gmp

PHREEQC Linux version 2.12-603 links Gnu Muliple Precision library statically, which allows users to run without installing the gmp library on their own computer.

October 11, 2005: PhreeqcI Version 2.12-590, Bug Fix

PhreeqcI version 2.12-590 fixes an incorrect message about which solver is used for INVERSE_MODELING.

October 10, 2005: PhreeqcI Version 2.12-587, Bug Fix

PhreeqcI Version 2.12-577 and 581 contained did not include the multiprecision option for inverse modeling. PhreeqcI version 2.12-587 includes the inverse modeling multiprecision capability and the INVERSE_MODELING screen (first tab) allows invoking the option and setting the parameters.

October 5, 2005: PhreeqcI Version 2.12-581, Bug Fix

PhreeqcI Version 2.12-577 contained an error in the Pitzer calculations. The first time a file was run after opening PhreeqcI, results were correct. Calculations in subsequent file runs were incorrect, because of incorrect reinitialization of Chebyschev parameters related to temperature. The batch versions of PHREEQC are unaffected by the problem. The bug is fixed in PhreeqcI version 2.12-581.

October 5, 2005: PHREEQC Version 2.12 for Mac

PhreeqcI Version 2.12-578 for OS X is available for download. This version does not contain the multiprecision solver for inverse modeling.

September 28, 2005: PHREEQC Version 2.12 Released

PHREEQC version 2.12 has been released, including batch versions for Windows and Linux. SunOS versions are no longer distributed, but there should be no problem compiling a batch version of PHREEQC on any Unix operating system.

Version 2.12 includes an implementationof the Pitzer specific-interaction activity coefficient formulation. To use the Pitzer activity coefficients, use the “pitzer.dat” database. All PHREEQC capabilities are available with the Pitzer activity coefficients except the explicit diffuse layer calculation (rarely used). A new keyword PITZER has been added, which is used to define the Pitzer interaction parameters (B0, B1, B2, C0, theta, lambda, zeta, and psi). The only other option in the PITZER data block is -MacInnes T/F, which uses the MacInnis assumption [gamma(Cl-) = gamma(K+)] to scale the individual ion activity coefficients or leaves the individual ion activity coefficients unscaled. The PHREEQC implementation of the Pitzer approach is based largely on the program PHRQPITZ (Plummer, L.N., Parkhurst, D.L., Fleming, G.W., and Dunkle, S.A., 1988, A Computer Program Incorporating Pitzer’s Equations for Calculation of Geochemical Reactions in Brines: U.S. Geological Survey Water-Resources Investigations Report 88-4153).

A multiple precision version of routine cl1, cl1mp, has been included in version 2.12 for inverse modeling. Cl1mp uses the Gnu Multiple Precision package (gmp). #Define statements are used to include or exclude this routine when compiling. PHREEQC. By using cl1mp, calculations are carried out to about 30 significant digits. Cl1mp may help in some inverse modeling calculations where roundoff errors are a problem, but it is still possible that roundoff errors will cause cl1mp to fail to find a solution to an optimization problem.

Other modifications and bug fixes for version 2.12 are detailed in the file RELEASE.TXT, which is included in all distributions.

September 28, 2005: PHAST Version 1.2 Released

PHAST Version 1.2 contains PHREEQC 2.12, including Pitzer activity coefficient capabilities. Apart from the updated capabilities of PHREEQC, two major modifications are included in version 1.2.

First, the flow and transport equations are now scaled by row. Scaling avoids some situation where the equations were not solved adequately with the iterative solver. The -tol option of SOLUTION_METHOD should now apply to all equations equally. Its value should be in the range of 1e-8 to 1e-15, but the default value 1e-10 should be adequate in most simulations.

Second, the parallel version has been streamlined. The flow of execution for the root process and the slave (chemistry) processes is now much cleaner. Memory has been optimized so that the slave processes require much less memory and, hence, simulations with larger numbers of nodes are now tractable.

Other modifications and bug fixes are detailed in the file RELEASE.TXT, which is included in all distributions of PHAST.

September 28, 2005: PhreeqcI Version 2.12 Released

PhreeqcI Version 2.12 contains the batch version of PHREEQC, version 2.12. This version of PhreeqcI fixes a bug related to long lines in SOLUTION_SPREAD.

February 14, 2005: PHAST Version 1.1 Released

PHAST Version 1.1 contains only minor modifications relative to version 1.0 (See December 22, 2004 below). Version 1.1 contains PHREEQC 2.11. All source code, make files, and distribution scripts have been saved in the Subversion version control system.

Support for SunOS has been dropped and we no longer distribute a Sun executable. However, it is possible to compile PHAST under the SunOS operating system by making modifications to the Linux distribution src/Makefile.

February 7, 2005: PhreeqcI Version 2.11 Released

PhreeqcI Version 2.11-148 contains the batch version of PHREEQC, version 2.11-136. This version of PhreeqcI has the bug fixes related to PHREEQC version 2.11.

February 7, 2005: PHREEQC Version 2.11 Released

PHREEQC version 2.11 has been released, including batch versions for Windows, Linux, and SunOS.

A new database, minteq.v4.dat has been translated from version 4.02 of MINTEQA2. An older version of the MINTEQA2 database is retained in file minteq.dat.

We started using Subversion for our version control system. The number included in distribution files (for example, “136” in phreeqc-2.11-136.Linux.tar.gz) is the Subversion revision number corresponding to the set of files used to build the current version. Subversion revision numbers change whenever any repository file is changed, so the number uniquely defines all files used in the current version.

Modifications include:

(1)Fixed error in selected output file with mixing reaction. MIX number was written to two columns, should be one.

(2) Fixed memory leak with PAD function.

(3) Modified and rewrote make files for compilation and distribution.

(4) Fixed bug with PRINT; -warnings n. Use of this option generally eliminated all warning messages instead of all messages after the nth. Default number of warning messages printed in now 100 per simulation.

(5) Fixed memory leaks in cvode. These leaks caused phreeqci to crash. New distribution of PhreeqcI is imminent. Now uses PHRQ_malloc in cvode in case of other memory leaks. Also fixed potential memory error with PAD malloc.

(6) Saturation index phases that included water had wrong value if distribution of species, exchange, or surface not written also.

(7) Fixed error message in cvode, if max iterations exceeded the error caused a segmentation fault.

(8) Made printing of parameter combination message a warning message so that it could be turned off.

December 22, 2004: PHAST Version 1.0 Released

PHAST is a 3D reactive-transport simulator that combines PHREEQC with HST3D, a ground-water flow and transport model. PHAST simulates constant-density constant-temperature saturated flow, multicomponent transport, and a full suite of equilibrium and kinetic geochemical reactions. PHAST uses a purely sequential algorithm that solves first flow, then transport of multiple components, and then chemical reactions in each cell of a finite-difference model grid. The sequence is repeated until each transient stress period has been completed.

The released PHAST version 1.0 is now available at http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phast with executables for Windows, Linux, and Sun. Both serial (single processor) and parallel (multiple processor) versions are included in each release package. The simulator has been extensively tested.

Documentation has been published as follows: Parkhurst, D.L., Kipp, K.L., Engesgaard, Peter, and Charlton, S.R., 2004, PHAST--A program for simulating ground-water flow, solute transport, and multicomponent geochemical reactions: U.S. Geological Survey Techniques and Methods 6-A8, 154 p. The PDF version of this report is included in all distributions of PHAST and also is available at http://pubs.water.usgs.gov/tm6a8.

All chemical definitions are identical to PHREEQC and you are referred to the PHREEQC User’s manual for documentation, which is included in all distributions of PHAST.

Model Viewer (developed by Paul Hsieh, Richard Winston, and Scott Charlton) is distributed with the Windows version. It provides 2D and 3D visualization of PHAST results that have been written to the HDF output file. Model Viewer has capabilities to slice, rotate, contour, and animate.

PHASTHDF is included in all distributions of PHAST. PHASTHDF is a Java program that extracts data stored in the HDF output file and writes the data to an ASCII file that is suitable for post-processing.

Major Changes from PHAST Version RC3

(1) Flow and transport data files ( prefix .trans.dat ) from version RC3 will not run with PHASTINPUT Version 1.0. The way that time-series data are defined has changed for boundary conditions, wells, rivers, time step, and print frequencies. A sequence of data blocks separated by END keywords is no longer used to define simulation periods. For boundary conditions, all time-varying properties are defined immediately following the -zone definition. Time series for wells are defined immediately following the -pumping/-injection identifier and following the -solution identifier. Time series for a river point are defined by -head and -solution following the definition of the location of the river point (-point). Time series for time step are defined in a single TIME_CONTROL data block. Print frequencies are defined for a sequence of times. At each time, print frequencies for various output files may be redefined.

(2) The handling of the unsaturated zone has changed in free-surface simulations. The unsaturated flow is not simulated, so free-surface calculations still contain major approximations. However, an attempt has been made to avoid some mass-balance errors related to rising and falling water tables. The program now separates the solids in a cell containing the water table into two reservoirs, the saturated and unsaturated reservoirs. As the water table rises, solids are transferred from the unsaturated reservoir to the saturated reservoir. As the water table falls, solids are transferred from the saturated reservoir to the unsaturated reservoir. The main deficiency in this implementation is that solids in the unsaturated reservoirs are removed from the current calculation and do not react with recharge that is, in fact, percolating through these solids. There is also no way to view or print the masses of solids that are in the unsaturated reservoirs.

(3) Mass-balance accounting for reactions has been added and the method for calculating mass-fluxes at boundaries has been changed to be consistent with the selected time-weighting scheme for the finite-difference equations.

(4) The FLOW_ONLY keyword has been replaced with the SOLUTE_TRANSPORT keyword.

(5) Input for rivers has been revised. Each river point location must now be defined with the -point identifier. Default properties have been eliminated. All properties (width, depth, bed thickness, bed hydraulic conductivity, head, and solution composition) are now interpolated. All properties must be defined at the end points of the river. Properties may be defined at additional river points. At the beginning of each simulation period, head and solution properties for river points are updated with any new values and interpolation for head and solution composition is performed for each river segment.

November 2, 2004: PHREEQC version 2.10 Released

PHREEQC version 2.10 has been released, including batch versions for Windows, Linux, and SunOS, and the graphical user interface PhreeqcI. All features of PHREEQC version 2.10, except those related to isotopes (keywords ISOTOPES , NAMED_EXPRESSIONS , ISOTOPE_ALPHAS , ISOTOPE_RATIOS , ISOTOPE_ALPHAS , and CALCULATE_VALUES ). PHREEQC version 2.10 contains only minor bug fixes relative to version 2.9.

Changes in version 2.10 include (1) Rearranged i/o for PHREEQC and reorganized driver subroutine. The object of these changes is to make the program more functional as a module for other programs (PHAST) and eventually to produce a callable C and Fortran module. (2) Fixed a problem with surface related to a phase, when phase was not part of system (for example, Fe(OH)3a when there is no iron in system. (3) Added convergence parameter set that requires mineral transfers to produce positive concentrations in the event that negative concentrations have been produced in the prior Newton-Raphson iteration. (4) Fixed bug with kinetics formulas; did not account for stoichiometric coefficient correctly when using phase names. Generalized to allow multiple phase names in the -formula definition.

October 31, 2004: PHREEQC For Windows 2.9 Released

PHREEQC For Windows version 2.9 was released by Vincent Post. PHREEQC For Windows is an interface to all capabilities of PHREEQC version 2.9, with additional plotting capabilities.

http://www.geo.vu.nl/users/posv/phreeqc/index.html

September 20, 2004: Batch versions of PHREEQC version 2.9 Released

PHREEQC version 2.9 released, including batch versions for Windows, Linux, SunOS, and Mac. PhreeqcI and Phreeqc For Windows have not yet been updated to version 2.9.

New features include:

New keyword COPY that can be used with any reactant that is identified with an index number ( SOLUTION , EQUILIBRIUM_PHASES , EXCHANGE , GAS_PHASE , KINETICS , MIX , REACTION , REACTION_TEMPERATURE , SOLID_SOLUTION , SURFACE) .

Added new Basic functions

b$ = PAD(a$, 20) pads a$ to a total of 20 characters;

i = INSTR(a$, b$) sets i to the character position of string b$ in a$;

b$ = LTRIM(a$) trims white space from beginning of string a$ and stores result in b$;

b$ = RTRIM(a$) trims white space from end of string a$ and stores result in b$;

b$ = TRIM(a$) trims white space from beginning and end of string a$ and stores result in b$.;

Added new Basic function SYS that calculates the to total amount of an element in all phases (solution, equilibrium_phases, surfaces, exchangers, solid solutions, and gas phase). KINETIC reactions are not included. The function has two forms: (1) one element name as an argument (variable names are user specified)

10 tot = SYS("As") the function will return the total arsenic in the system.

(2) 5 arguments

10 tot = SYS("As", count_species, names$, types$, moles) will return the total arsenic in the system to tot; count_species--the number of species that contain arsenic, including solution, equilibrium_phases, surfaces, exchangers, solid solutions, and gas phase species; names$--a character array that has the name of each species; type$--a character array that specifies the type of phase for the species, aq, equi, surf, ex, s_s, gas, diff. Diff refers to the amount of the element in the diffuse layer of a surface when the explicit diffuse layer calculation is used; moles--an array containing the number of moles of the element in the species. The sum of moles(i) is equal to tot. SYS has several special arguments for the form SYS("arg", count, names$, types$, values). Arg is one of the options listed below; count is a single numeric value and is the number of elements in the following arrays; name$ is an array of string values; type$ is an array of string values; values is an array of numeric values. Values of arg: elt_name returns total number of moles of element in system, count is the number of species for the element in the system, including aqueous, exchange, surface, equilibrium_phase, solid solution component, and gas phase "species", arrays are filled for each "species"; values are moles; "elements" returns total number of moles of dissolved elements other than H and O; count is number of elements, valence states, exchangers, and surfaces, arrays are filled for each element and valence state, type is "dis"; exchanger, type is "ex", and surface, type is "surf". Values are moles; "phases" returns saturation indices of all phases; count is number of phases in system, arrays are filled for each phase, values are saturation indices; "aq” returns sum of moles of all aqueous species, count is number of aqueous species in system, arrays are filled with each aqueous species, values are moles; "ex" returns sum of moles of all exchange species, count is number of exchange species in system, arrays are filled with each exchange species, values are moles; "surf" returns sum of moles of all surface species, count is number of surface species in system, arrays are filled with each surface species, values are moles; "s_s" returns sum of moles of all solid solution components, count is number of solid solution components in system, arrays are filled with each solid solution component, values are moles; "gas" returns sum of moles of all gas components, count is number of gas components in system, arrays are filled with each gas component, values are moles.

Added new Basic function, DESCRIPTION, that has the value defined for the description field of the SOLUTION keyword line.

Added alternative ordinary differential equation solver called CVODE, a set of C routines from the Lawrence Livermore National Labs. CVODE is part of the SUNDIALS package. CVODE is used in place of the Runge Kutta method when " -cvode true " is used within a KINETICS data block.

Bug fixes include:

In inverse modeling, program terminates if sum of initial solutions and phases is > 32.

Fixed bug with isotopes. Log activity estimate after initial solution calculation was inf under some conditions. An initial surface calculation failed when using D.

Changed saturation index print out to use reaction and log K defined in PHASES definition. Previously, reaction could be rewritten to predominant redox species.

Fixed incorrect print of elapsed time for kinetics in advection.

Added phrqproto.h prototype file and phrqtype.h for switching compilation to long double.

Fixed incorrect printout of kinetics delta moles with advection.

Added convergence parameter set that skips mineral equations for first 5 iterations.

Added entity_exists for module.

Fixed bug with mix index incorrect (-2) for mixing with kinetics.

Fixed error in SOLUTION_SPREAD , defining -redox did not set the default redox for the solutions that were defined; pe was always used as default.

Modified code to allocate space differently for PHAST: pp_assemblage, exchange, surface, gas_phase, kinetics, and s_s_assemblage. Enough space is allocated,at beginning of distribute_initial_conditions. Speeds up phast initialization and makes better use of available memory.

Changed gfw of water to 18 if isotopes of water are included. Solvent is [1H]2[16O].

Fixed a bug in surface integration where order of ions in the list of g’s was incorrect.

Pyrite rate was not 0 if supersaturated in phreeqc.dat and wateq4f.dat .

Segmentation error if a surface species was not defined with an equation that contained another surface species. In this case, the surface master species had been redefined to be an aqueous species ( SOLUTION_SPECIES ).

March 24, 2004: PHAST version RC3 Released

Release Candidate 3 fixes a bug for rivers. If flux and river boundary conditions applied to the top of the grid, the river areas for each cell were not properly accumulated and the program failed.

An implicit method for integration of kinetic reactions has been added to the PHREEQC version that is included in PHAST. This method is more robust for stiff systems of ODE’s. The next version of PHREEQC (2.9) will also include this alternative integration method. The implicit method is used when -cvode is included in a KINETICS data block of the chemistry data file, otherwise the usual Runge-Kutta method is used.

Vertical and horizontal transverse dispersivity are now used in place of the single transverse dispersivity that had previously been implemented.

An option, -mask, has been added, which allows the definitions for a zone to be applied to a subset of the elements or cells selected by the zone. A series of 1s and 0s determines the cells or elements to which the definition applies.

Steady-flow calculation now always uses upstream weighting.

PRINT_LOCATIONS allows separate definition of print locations for .O.xyz and .O.chem files.

Fixed bug in head tolerance in steady flow, units were not correctly converted; Changed defaults for PRINT_INITIAL and PRINT_FREQUENCY ; Set water compressibility to zero for all cases, confined and unconfined, which eliminates the error if storage is less than water compressibility alone; Set fluid viscosity to 0.001; Made FLUID_PROPERTIES data block obsolete; Changed “allocate_pressure” to “allocate_head” in WELL data block; Added -save_head and -echo_input identifiers in PRINT_FREQUENCY ; Added logic to determine number of meters below node and above node for well allocation; Fixed bugs in cross dispersion; Fixed all uninitialized variables in Fortran and checked all INTENT statements; it is now an error if the cell horizontal dimension is less than the well-bore diameter; Made it an error if any print frequency is less than the time step; Fixed nodal velocity calculation for edges of excluded zones; Fixed logic related to an inactive cell above a free surface; Finished implementing single log file; Made print controls more uniform; Changed algorithm for multiple river segments with different bottom locations, hydrostatic location of water table; Fixed bugs with merging files with MPI (parallel version); MPI algorithm for printing sends one message per processor instead of one message per cell; Fixed memory leak with exchange under some conditions; Added alkalinity to .xyz.wel file; Minimized reallocation of space when rebalancing; Changed allocation of space for cells so that memory would not be as fragmented; Implemented optional compilation with long double type for all of PHREEQC; Updated to latest PHREEQC: -cvode integration for KINETICS , SYS Basic function, string functions for Basic, COPY keyword; Added digits to current time in printouts, g3 not enough; Added digits to timchg in Phast.tmp, needs to be same as number of digits as for print frequencies.

February 3, 2004: PHREEQC version 2.8 for Mac OS X Released

PHREEQC version 2.8 has been ported to MacIntosh OS X. The archive and installation notes are available from the web page http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc. (PHREEQC version 2.6 is the latest version available for OS 9.)

April 15, 2003: PHAST version RC2 Released

Release Candidate 2 fixes a major bug for wells in heterogeneous aquifers. The flow rates to or from wells was not distributed correctly for layers with different hydraulic conductivities.

The implementation of cross dispersion was corrected to account for non-uniform grids.

Other minor bug fixes and enhancements: Allow longer file names, check for overflow of field. Includes PHREEQC version 2.8. Some mass-balance variables were initialized twice. Slight modification to keep better mass balance on water by ensuring that 1 kgw is transported. Modified phastinput to make more consistency checks on data--Check that print frequency >= time step; Use 20 place for heads and other properties in Phast.tmp to avoid slight variations in linear boundary conditions; Removed flow_only and steady_flow options from steady_flow keyword data block; Added warning if crosd == FALSE and alphal != alphat. Added PHAST as a separate state in the PHREEQC calculations, corrected error when transport was run as part of the PHREEQC calculations in phast. Revised and added error message for case where water table is below fixed head cell. Added alkalinity to .xyz.wel file.

April 15, 2003: Mail Archive

http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc/mail/index.html. Web page now has searchable archive of hundreds of email questions and answers accumulated over the past 2 years. This archive augments the questions and answers included in the FAQ.

April 15, 2003: PHREEQC 2.8 and PhreeqcI 2.8 Released

PHREEQC version 2.8 is included in PHAST RC2.

Arsenic data in wateq4f.dat were updated on the basis of Archer and Nordstrom (2002).

Version 2.8 fixes minor bugs in PHREEQC and PhreeqcI. Revised Basic interpreter to allow lines of any length and character strings of any length. Renumbering basic statement that included the function SURF in PhreeqcI caused SURF to be omitted and generated a syntax error. SURF and other functions had not been implemented in PhreeqcI. Fixed a bug in the Basic Interpreter. If elements of a dimensioned variable (character or number) were used on both sides of an equation, the result was erroneously stored in the last element of the variable used on the right-hand side instead of the element specified on the left-hand side. Using comma in some fields caused an infinite loop. Fixed bug with SOLUTION_SPREAD, Phreeqc was not calculating solution numbers for SOLUTION_SPREAD solutions without solution numbers. Fixed bug with stagnant zone calculations. If solutions not defined for stagnant cells, PhreeqcI crashed. Added new state for calculations, PHAST. Previously phast used the state TRANSPORT, which caused some erroneous results with temperature when TRANSPORT was used in the PHREEQC part of the calculation. Trying to define dump file in TRANSPORT caused a file opening error. Fixed logic so now can open a file and the name can include blanks.

March 10, 2003: PHREEQC 2.7.1 Released

Version 2.7.1 fixes minor bugs in the interface. Fixed bug with SOLUTION_SPREAD, PhreeqcI was not calculating solution numbers for SOLUTION_SPREAD solutions without solution numbers. PHREEQC may not set the correct solution for reaction calculations in this case. Fixed bug with stagnant zone calculations; if solutions were not defined for stagnant cells, PhreeqcI crashed. Defining a dump file in TRANSPORT caused a file opening error; fixed logic so now can open a file and the name can include blanks.

February 14, 2003: PHREEQC 2.7 and PhreeqcI 2.7 are Released

Version 2.7 fixes a significant bug when using TRANSPORT and KINETICS . The rate equations were not always integrated for the correct period of time.

Version 2.7 contains major revisions to implement isotopic calculations in PHREEQC. In PHREEQC, isotopes are considered as separate components, separate “elements” if you will. Calculations are done in terms of molality, but traditional isotopic units (permil, percent modern carbon, TU, pCi) are used for input and results are printed in molality and traditional units. Isotopes in solids are calculated as solid solutions. The database iso.dat has the definitions for a minimal aqueous model that contains 12C, 13C, 14C, H, D, T, 16O, and 18O. Sulfur and nitrogen isotopes may be added in the future. The approach is different from the traditional approach of fractionation factors and postprocessing phase transfers to calculate isotopic compositions, so you may choose not to use it.

Documentation of the input for isotopic calculations is available in Thorstenson, D.C., and Parkhurst, D.L., 2002, Calculation of individual isotope equilibrium constants for implementation in geochemical models: U.S. Geological Survey Water-Resources Investigations Report 02-4172, 129 p. The abstract and PDF file can be downloaded from http://water.usgs.gov/pubs/wri/wrir02-4172.

New keywords

CALCULATE_VALUES --This keyword data block is used to define Basic programs for the calculation of quantities that can be printed to the output file or used in other Basic programs for PHREEQC. The primary use of the data block is to define the calculation of arbitrary isotope ratios and isotope fractionation values. Normally, this data block is included in the database file and only additions and modifications are included in the input file.

ISOTOPES --This keyword data block is used to define the names, units, and absolute ratio of the standard for individual minor isotopes. By convention in PHREEQC, the major isotope of an element is given the element name and is defined in SOLUTION_MASTER_SPECIES , all other isotopes are defined in the ISOTOPES and SOLUTION_MASTER_SPECIES data block. Normally, this data block is included in the database file and only additions and modifications are included in the input file.

ISOTOPE_ALPHAS --This keyword data block is used to print a data block in the output file that compares calculated isotopic ratios to experimental isotopic ratios, from which the equilibrium constants of the isotope model were derived. Fractionation values (alphas) are ratios of isotopic ratios that describe the amount of isotopic fractionation between phases and between aqueous species. Normally, this data block is included in the database file and only additions and modifications are included in the input file.

ISOTOPE_RATIOS --This keyword data block is used to print a data block to the output file of (1) the absolute ratio of minor isotope to major isotope for each minor isotope and (2) the ratio converted to standard measurement units. Normally, this data block is included in the database file and only additions and modifications are included in the input file.

NAMED_EXPRESSIONS --This data block was implemented to facilitate isotopic calculations. It allows analytical expressions that are functions of temperature to be defined and referenced by name. The purpose is to separate fractionation factors from log Ks, so that the fractionation factor or its temperature dependence can be easily modified. A named expression can be added to the log K for a species or phase by the -add_logk identifier in SOLUTION_SPECIES , EXCHANGE_SPECIES , SURFACE_SPECIES , or PHASES data blocks. Normally, this data block is included in the database file and only additions and modifications are included in the input file.

New identifiers

-add_logk has been added to allow named expressions to be summed in the calculation of log K values. The option may be used in EXCHANGE_SPECIES , SOLUTION_SPECIES , and SURFACE_SPECIES data blocks.

-add_constant has been added to allow constant values to be summed in the calculation of log K values. The option may be used in EXCHANGE_SPECIES , SOLUTION_SPECIES , and SURFACE_SPECIES data blocks.

PRINT keyword: -initial_isotopes T/F; -isotope_ratios T/F; -isotope_alphas T/F; -censor_species 1e-8.

SELECTED_OUTPUT keyword: -calculate_values name1 name2 ...; -isotopes minor_isotope1 minor_isotope2 .... .

New Basic functions

 

Special PHREEQC
statement or function

Explanation

CALC_VALUE(“R(13C)_CO2(aq)”)

Result of executing named Basic program that has been defined in CALCULATE_VALUES data block.

LK_NAMED(“Log_K_HCO3-”)

Log10 of K for an expression evaluated at the current temperature as defined in the NAMED_EXPRESSION data block.

LK_PHASE(“Calcite”)

Log10 of K for a phase at current temperature as defined in PHASES data block.

LK_SPECIES(“Log_K_HCO3-”)

Log10 of K for a species at current temperature as defined in SOLUTION_SPECIES , EXCHANGE_SPECIES , or SURFACE_SPECIES data block.

SUM_GAS(“{H,D,T}2[18O]”, “[18O]”)

Sum of element in gases with specified template. This example sums the moles of oxygen-18 in all isotopic forms of water containing oxygen-18 in the GAS_PHASE .

SUM_SPECIES(“*{H,D,T}C{O,[18O]}3*”, “C”)

Sum of element in aqueous, exchange, and surface species with specified template. This example sums the carbon-12 in all isotopic forms of bicarbonate containing carbon-12.

SUM_S_S(“Calcite”, “[18O]”)

Sum of element in a specified solid solution. This example sums the oxygen-18 in all isotopic forms defined in the solid solution “calcite.”

Bug fixes

Initialized gfw in elements structure. Avoids error in PhreeqcI.

Fixed bug where "time" would be wrong for initial solution calculation. Needed to initialize rate variables for PhreeqcI.

Added print of simulation number to error file for PhreeqcI.

Limited printing of cell numbers to output file in advection calculations. Cell numbers only printed if results for cell are going to be printed.

PhreeqcI captured status messages for kinetics, which made a very large error file in some cases and a long wait to view the output file in PhreeqcI. Now PhreeqcI does not capture these intermediate status messages.

Removed old code related to redirecting error file

Corrected error in transport where wrong time step was used for integration.

Changes to speed up transport algorithm.

Allow file names with spaces in selected_output file name and dump_file name.

Modifications to work with RC1 phast log file.

Allow any characters in square brackets for element name.Previously, - and + and perhaps others caused problems.

Fixed log molality of water in species printout, was equal to log activity of water. Also fixed basic function for LM.

Changed solid solution prints to print 0 if solid solution is not present.

Fixed bug if no rate name was defined before options in RATES.

Fixed warning on Mac compilation in fpunchf.

Fixed bug if isotopes were used but H and O isotopes were not defined.

Fixed bug where special initial solution calculations were done at later calculation stages. Needed to set initial_solution_isotopes = FALSE.

Fixed problem in C++ if structure name is same as member name. logk member of logk structure was renamed to log_k.

December 17, 2002: Release Candidate version of PHAST RC1-2 for Windows

A couple bugs in the Windows installation were fixed. A shortcut was added for phastexport, and several .jar and .dll files for phastexport, which were missing in the original RC1-1, were added to the installation.

November 27, 2002: Release Candidate version of PHAST.

PHAST is in the final stages of testing and documentation. The program has thoroughly tested and debugged. The current version (RC1) will be the release version with modifications to correct any bugs found during this beta testing period. No additional features are planned for the initial release. The following changes have been made to PHAST relative to version 0.3 released in August, 2001:

(1) A few keyword data blocks for the flow and transport data file have been added or changed. Current data input definitions are available in the file phast.pdf in the doc directory of the installation.

(2) Installation of PHAST is now simplified by using InstallShield (Windows) and RPM (Linux and Sun).

(3) Scripts (Unix and Windows) have been written to automate the running of phastinput and phast.

(4) The HDF file is now written directly while running phast; previously, the HDF file was produced from a "selected-output" file by ModelViewer.

(5) The HDF file now contains information on boundary cells (specified head, leaky, flux, river, and well), which can be visualized by ModelViewer.

(6) Flow vectors at nodes are now calculated and may be written to the HDF file and visualized.

(7) The output files have been simplified to two main formats: ".O" files can be viewed in an editor and usually contain data formatted in 2D slices, and ".xyz" files contain data for a single cell on a single line (each line contains x, y, z, time, a wet/dry flag, followed by data); .xyz files are suitable for spreadsheets and other post processing.

(8) A Java program, phastexport, allows selected data from the HDF file to be extracted and written to a file in .xyz format for postprocessing. Thus, most data can be stored in and retrieved from the HDF file, minimizing the need for writing .O and .xyz files.

(9) Several log files have been merged or eliminated; all errors, warnings, input echoing, and log messages are directed to the file prefix.log.

(10) Problems with multilayer rivers have been corrected.

(11) Numerous bugs have been fixed.

(12) MPI (LAM and MPICH) has been used to parallelize PHAST. Test versions of the parallel program are available on a limited basis by contacting David Parkhurst (dlpark@usgs.gov). No support will be provided for installing, debugging, or invoking MPI on your system.

May 31, 2002: PhreeqcI 2.6.0.1 released.

Bug fixes: (1) a bug that affected the thermodynamic data keyword screens ( PHASES , XXX_MASTER_SPECIES , and XXX_SPECIES ); one of the controls was misplaced for some graphics cards (we think). (2) Also fixed a logic error that mixed up the fields in SURFACE_MASTER_SPECIES . (3) Fixed a bug in SOLUTION_SPREAD that did not interpret multiple empty fields correctly on the header line.

May 15, 2002: PhreeqcI 2.6.0.0 released.

PhreeqcI is a complete Windows-based graphical user interface to the geochemical computer program PHREEQC (Version 2). PhreeqcI can be used interactively to perform all the modeling capabilities of PHREEQC--speciation, batch-reaction, one-dimensional (1D) reactive -transport, and inverse modeling. Data for PhreeqcI may be read from a PHREEQC input file, entered through a line editor, or entered through screen-driven input. Each keyword data block of PHREEQC has a corresponding input screen with tabbed panes for input of all data related to the keyword. Balloon help is available for all buttons; when a data field receives the focus, a description of the data field appears at the bottom of the screen; and the complete PHREEQC version 2 manual is available through the help menu.

April 22, 2002: PHREEQC 2.6 released.

This release includes only minor additions and bug fixes relative to version 2.5. The upcoming release of PhreeqcI will use this version of PHREEQC.

Changes in version 2.6 include: (1) All selected-output is routed through a single routine. (2) Underscores "_" are allowed inside square brackets, [A_bcd] for element definitions. (3) Fixed bug match_elts_in_species, check for "e-" was wrong. (4) Modified minteq.dat to put CuS4S5-3, Cu(S4)2-3 in Cu(1) mole balance equations instead of Cu(2). Before the change, the program would not converge if Cu(2) were defined in an initial solution. (5) Revisions to improve SOLID_SOLUTIONS convergence with small numbers of moles of solids. (6) Made changes related to dump file and PhreeqcI. (7) Printed number of iterations, now sums iterations in all kinetics calculations. (8) Fixed bug with LA("H2O"), which was returning natural log of activity of water.

October 18, 2001: PhreeqcI RC1 (Release Candidate 1) released.

PhreeqcI is now complete and available for final testing. All design features have been implemented and screen-driven input for all keyword data blocks is available. PhreeqcI RC1 is based on PHREEQC version 2.5. This version of PhreeqcI is expected to be the last version before the official release of the program.

October 18, 2001: PHREEQC 2.5 released.

This release includes only minor additions and bug fixes relative to version 2.4.2. A feature has been added to allow elements to be defined using brackets ("[]").

Changes in version 2.5: (1) In llnl.dat, fixed sign errors in REE (rare earth elements) for some redox reactions and removed some redundant species, generally ReeO2- was retained and Ree(OH)4- was removed. (2) Added the capability to use square brackets to define an "element" name. The brackets act like quotation marks in that any character string can be used within the brackets as an element name. This was introduced to simplify expansion of the model to isotopic species. [13C], [14C], and [18O] are legal element names. (3) Added identifier -activity_water for a species in SOLUTION_SPECIES data block. This identifier has been added for future updates that will allow isotopic calculations. It is intended to be used only for isotopic variations of H2O, like D2O or H2[O18]. It forces the activity coefficient for the species to be activity(water)/55.5. This effectively sets the activity of the species to the mole fraction in solution. (4) Fixed bug in checking solid solutions for presence or absence of elements in the system. Programming error caused segmentation fault if an error was detected under certain conditions. (5) Changed return value of MOL to be molality of water if argument is "H2O". Also changed return value of LA to be activity of water if argument is "H2O". (6) Diffuse layer calculation was incorrect if aqueous phase did not have 1 kilogram of water. Eq. 74 of manual has molality, but code used moles. The code was corrected by adding the mass of water to the formulation. (7) Stagnant zones with first-order exchange approximation (1 stagnant cell, exchange factor, and porosities defined) did not work correctly if mobile and immobile cells did not have equal volumes of water. The mixing factors were revised to account for the masses of water in the stagnant and mobile zones. (8) A fatal error was erroneously detected if the database file had a DATABASE data block. DATABASE data block is now ignored while reading the database file. (9) Added identifier -bad_step_max to KINETICS data block. An integer following -bad_step_max gives the maximum number of times a rate integration may fail before execution of the program is terminated. Default is 500.

October 18, 2001: llnl.dat version 1.11.

Sign errors in log K were fixed for redox reactions for some rare earth elements (REE). Some redundant REE species were removed, generally ReeO2- was retained and Ree(OH)4- was removed.

August 3, 2001: PHAST beta test version 0.3 is posted; FREE_SURFACE error is corrected

PHAST is a 3D reactive transport model that combines PHREEQC with HST3D, a ground-water flow and transport model. Capabilities are limited to constant density, constant temperature flow plus a full suite of reaction capabilities. PHAST uses a purely sequential algorithm that solves first for the transport of multiple components, reacts each cell of the domain by using PHREEQC, and then repeats transport and reaction until each transient stress period has been completed.

New executables for PHASTINPUT and PHAST have been compiled and placed on the net. The new versions include the following enhancements: A new keyword data block, PRINT_LOCATIONS , allows selected cells to be printed to the selected-output file. The STEADY_FLOW capability, which allows an initial flow-only calculation to achieve a steady-state flow condition, has been thoroughly revised. Print control has been revised to be more consistent and to give more flexibility in selecting data to be printed to output files. The methods for handling multiple RIVER s (or river segments) within a single cell has been revised, the previous method caused unreasonable flows from one segment to another within the same cell.

The revised code contains many corrections and refinements. The error in the free-surface transport calculation (noted June 1 and at the time of release of PHREEQC version 2.4.2) has been fixed. Other bug fixes are the result of testing and comments by users.

Documentation for the flow and transport input is provided in a PDF file distributed with PHAST. All chemical definitions are identical to PHREEQC and you are referred to the PHREEQC User’s manual for documentation.

ModelViewer (developed by Paul Hsieh and Scott Charlton), which runs on Windows, is available for viewing 2D and 3D PHAST results that have been written to a selected-output file. Capabilities to slice, rotate, contour, and animate are included. Anyone willing to test the code can write to dlpark@usgs.gov.

August 3, 2001: PHREEQC (or PHAST) data base, organic ligands and trace elements:

A database with special emphasis on organic compounds and ligands, and Co and Mo has been developed for PhreeqC by Martin Mkandawire at the Institute of General Ecology and Environmental Management, Dresden, Germany. The institute is interested in the speciation of uranium and the daughter elements in natural systems and in relation to nutrition.

The database is derived from compilations of thermodynamic data, including Minteq, PhreeqC, Chess, published sources like Janaf Thermodynamic Tables (3rd Edition), and others.The database is available for your comments and evaluation.

Please contact mkanda@frsws10.forst.tu-dresden.de, Martin Mkandawire (PhD Fellow in Remediation of Radioactive Contamination), Institute of General Ecology and Environmental Management, Dresden University for Technology, 01737 Tharandt, Germany.

July 9, 2001: PHREEQC for Windows (1.5.04), Graphical User Interface for PHREEQC 2.4.2 is released:

PHREEQC for Windows has been updated to the latest version of PHREEQC (2.4.2).

June 29, 2001: PhreeqcI, Graphical User Interface for PHREEQC 2.4.2 (2015) is released:

Screen input for most keyword data blocks has been completed. Currently all keyword data blocks except for thermodynamic data ( _MASTER_SPECIES , _SPECIES , PHASES ) have screens to guide input. Even though screen input is not available for a few data blocks, files using all features of version PHREEQC 2.4 may run either by opening an input file or entering lines through the line editor in the interface. The current version offers expanded cut and paste features, which is especially useful for importing data from a spreadsheet into the SOLUTION_SPREAD data block.

June 15, 2001: PHREEQC 2.4.2 is released

This release fixes a few bugs related to SOLUTION_SPREAD. See June 1, 2001 entry for description of version 2.4 relative to 2.3.

June 1, 2001: ERROR in PHAST

PHAST has a serious bug related to transport when a free-surface boundary condition is used. A new version will be released as soon as possible. However, in the interim contact dlpark@usgs.gov to get an intermediate version that has the bug fixed.

June 1, 2001: ERRORS corrected in LLNL.DAT

Enthalpies of reaction (-delta_H) have been corrected in llnl.dat released with PHREEQC version 2.4. The previous release (PHREEQC 2.3) erroneously had enthalpies of formation in the -delta_H parameter; the values should be enthalpies of reaction. Enthalpies of reaction were calculated from the enthalpies of formation and these values are now included in the -delta_H parameter. This change has little impact on most calculations because the analytical expression has precedence over -delta_H in calculating temperature dependence of log K. Nearly all species and minerals have an analytical expression or lack both an analytical expression and an enthalpy of reaction.

June 1, 2001: PHREEQC 2.4 is released

This release includes only minor additions and bug fixes. A new identifier, -warnings , in the PRINT data block limits the number of warning messages that are printed. The function CELL_NO in Basic programs now prints the solution numbers for initial solution and reaction solution calculations. Databases phreeqc.dat and wateq4f.dat have been modified slightly for surface complexation of Fe and the in the rate definition for calcite.

Changes: (1) Added internal structure for spreadsheet for use by PhreeqcI. (2) Isotope value initialized incorrectly if -uncertainty was defined in SOLUTION_SPREAD . (3) Fixed segmentation violation when primary and secondary master species were defined improperly. (4) Corrected enthalpies of reaction in llnl.dat. (5) Corrected bugs in printing of solid-solution components. Both selected output and output file had errors; the moles of the components were incorrect in selected output, and total moles of all components and mole fraction were incorrect in output file. (6) Added surface complexation constants for Fe+2; two complexes for weak sites and one complex for strong sites; phreeqc.dat and wateq4f.dat modified. (7) Comment for units of parameters for calcite rate equation was wrong. Rate equation now uses cm 2 /L for area parameter. Previously the correct units would have been 1/decimeter; phreeqc.dat and wateq4f.dat modified. (8) Fixed a bug when rates were equal within tolerance, but negative concentrations occurred because of small initial concentrations. (9) Added -warnings to PRINT keyword for specification of maximum number of warnings to print. Negative number allows all warnings to be printed. (10) Function CELL_NO in Basic now prints a number equivalent to -solution in SELECTED_OUTPUT data block. This does not change printing for ADVECTION or TRANSPORT calculations. (11) Kinetics time is halved for advective part of reaction in transport; time incorrectly accounted for before. (12) -punch_ identifiers printed -1 instead of the correct solution number for batch-reaction calculations. (13) -high_precision is no longer reset to false with every SELECTED_OUTPUT data block. (14) SELECTED_OUTPUT file name stored for use by PhreeqcI. (15) Alkalinity for NH3 corrected to 1.0 in llnl.dat. (16) Fixed bug with USER_PRINT of kinetics. Did not find correct kinetics information in some cases. (17) Fixed bug in default values for SOLUTION_SPREAD . Defining a phase name and SI for pH or pe caused PHREEQC to fail to run. Now PHREEQC runs, but warns that this is not allowed.

February 21, 2001: ERRORS in LLNL.DAT

The “delta_H” values in LLNL.DAT are inadvertently enthalpies of formation. These values are incorrect because they should be enthalpies of reaction. Virtually none of the delta H values for aqueous species are used because the species have analytical expressions or the delta H is 0.0 and has no effect on the log K. The analytical expressions supersede the use of delta H in the Van’t Hoff expression and delta H of zero implies no temperature dependence data are available. However, many aqueous species lack both delta H (delta H = 0) and analytical expressions, which means the log K’s have no temperature dependence whatsoever. This situation is inherited from the original LLNL data and we have made no attempt to address this deficiency. About 80 minerals have erroneous delta H values that are used and will affect calculations at temperatures other than 25 C. To check whether a mineral of interest falls in this category, look in LLNL.DAT for the mineral; if it has a nonzero delta_H and no analytical expression, then the temperature dependence of the log K will be incorrect. We will correct the delta H information in LLNL.DAT as soon as possible.

February 21, 2001: PHAST--3D Reaction Transport Model, Beta Test Version 0.2

PHAST combines PHREEQC with HST3D, a 3D ground-water flow model. Only constant density, constant temperature flow is included. PHAST uses a purely sequential algorithm that solves first for the transport of multiple components, reacts each cell of the domain by using PHREEQC, and then repeats transport and reaction until the total time of simulation has been reached.

New executables for PHASTINPUT and PHAST have been compiled and placed on the net. The new versions include a few enhancements, but mainly are the result of bug fixes generated by more systematic testing by hand calculations, and comparison to analytical solutions and published results for transport and reactive transport problems. A new feature to calculate steady-state flow and use those velocities for all transport calculations is very preliminary and has not been tested completely and will undergo some further enhancement. Another new feature allows grid refinement by overlaying additional nodes on a uniform (or nonuniform) grid. Documentation for the flow and transport input is provided in a PDF file distributed with PHAST. All chemical definitions are identical to PHREEQC and you are referred to the PHREEQC User’s manual for documentation.

February 21, 2001: ERRORS in LLNL.DAT

The “delta_H” values in LLNL.DAT are inadvertently enthalpies of formation. These values are incorrect because they should be enthalpies of reaction. Virtually none of the delta H values for aqueous species are used because the species have analytical expressions or the delta H is 0.0 and has no effect on the log K. The analytical expressions supersede the use of delta H in the Van’t Hoff expression and delta H of zero implies no temperature dependence data are available. However, many aqueous species lack both delta H (delta H = 0) and analytical expressions, which means the log K’s have no temperature dependence whatsoever. This situation is inherited from the original LLNL data and we have made no attempt to address this deficiency. About 80 minerals have erroneous delta H values that are used and will affect calculations at temperatures other than 25 C. To check whether a mineral of interest falls in this category, look in LLNL.DAT for the mineral; if it has a nonzero delta_H and no analytical expression, then the temperature dependence of the log K will be incorrect. We will correct the delta H information in LLNL.DAT as soon as possible.

February 21, 2001: PhreeqcI, Graphical User Interfaces for PHREEQC, Alpha test version 2011, released

The screens for INVERSE_MODELING have been revised.

January 2, 2001: PhreeqcI, Graphical User Interfaces for PHREEQC, Alpha test version 2010, released

A new overall structure of the interface allows multiple input and output files within the input tree and output tree. The tree for output files locates specific output blocks with a click of the mouse and avoids scrolling through the entire output file to find selected information. Currently, screen-driven input and editing is available for the following keywords: EQUILIBRIUM_PHASES, EXCHANGE, GAS_PHASE, SOLID_SOLUTION, SOLUTION, SURFACE, USE, END, MIX, REACTION, REACTION_TEMPERATURE, SAVE, RATES, INVERSE_MODELING, KINETICS, TITLE, PRINT, USER_PRINT, and USER_PUNCH.

PHREEQC version 2.3 is implemented and, although screen input is not available for all keywords, all features of PHREEQC version 2.3 may be run within the interface, either by importing an input file or by adding keywords within the line editor of the interface.

Screen input is not yet available for ADVECTION, TRANSPORT, SOLUTION_SPREAD, LLNL_AQUEOUS_MODEL_PARAMETERS, INCREMENTAL_REACTIONS, KNOBS, SELECTED_OUTPUT, SOLUTION_MASTER_SPECIES, SOLUTION_SPECIES, EXCHANGE_SPECIES, EXCHANGE_MASTER_SPECIES, SURFACE_SPECIES, SURFACE_MASTER_SPECIES, and PHASES.

January 2, 2001: PHREEQC 2.3 is released

New database developed from the Lawrence Livermore National Lab thermodynamic data by Greg Anderson that is consistent with EQ3/6 and Geochemist’s Workbench. Added new keyword DATABASE. It must be the first keyword in the input file. The character string following the keyword is the pathname for the database file to be used in the calculation. The file that is specified takes precedence over any default database name, including environmental variable PHREEQC_DATABASE and command line arguments. (2) Fixed bug in SOLUTION_SPREAD. If first heading in the spread-sheet input was an identifier--pH, pe, units, etc.--then the headings were interpreted as an identifier and bad things happened. (3) Added new keyword to make aqueous model similar to LLNL and Geochemists Workbench when using llnl.dat as the database file. Values of Debye-Hückel a and b and bdot (ionic strength coefficient) are read at fixed temperatures. Linear interpolation occurs between temperatures. (4) New options for SOLUTION_SPECIES are -llnl_gamma a, where a is the ion-size parameter. -co2_llnl_gamma, indicates the temperature dependent function for the bdot term given in -co2_coefs of LLNL_AQUEOUS_MODEL_PARAMETERS will be used. Applies to uncharged species only. (5) Fixed bug in basic interpreter. A number like "..524" would cause an infinite loop. (6) Added function SURF to Basic. SURF(“element”, “surface”) gives the amount of element in the diffuse layer for “surface”. “surface” should be the surface name, not the surface-site name (that is, no underscore). (7) Fixed option to “runge_kutta” from "runge-kutta" to match documentation for KINETICS. (8) Fixed UO2+2 and Mn+2 reaction stoichiometry for Hfo surface complexation in wateq4f.dat. (9) Added option for an equilibrium-phase to dissolve only. "dis" is added at the end of a line defining an equilibrium- phase. No data fields may be omitted. Should not be used when adding an alternative reaction. (10) R-K integration failed when only the final rate generated negative concentrations. (11) Allow decimals in definition of secondary master species, for example S(0.3). (12) Fixed bug if description was more than about 85 characters; now allows about 400 characters. (13) Fixed bug for surface/exchange sites related to phases. Was checking internal copies of surfaces/exchange with negative numbers. (14) Fixed bug in quick prep that did not set the correct pointer for gas phases. (15) Fixed segmentation fault that occurred if all elements for phase-boundary mineral were not in the solution. Only applied to a phase used to define concentration in an initial solution calculation. (16) Added option to eliminate echo of input file in PRINT data block. -echo_input T/F turns echoing on and off. Default is on.

March 6, 2000: PhreeqcI, Graphical User Interfaces for PHREEQC, Alpha test version 0.39, released

Additional keyword screens include MIX, REACTION, REACTION_TEMPERATURE, SAVE, TITLE.

March 1, 2000: PHREEQC 2.2 is released

Changed distribution to be more consistent with other USGS water-resources applications, with addition of additional informational files. PDF file is now in compressed format.

Fixed bug in MIX if no solutions are defined. Changed printout for surface. Only gives net surface charge for diffuse layer calculation. Prints correct value for the surface charge and surface charge density for diffuse-layer calculation. Added function EDL to Basic. EDL(“element”, “surface”) gives the amount of element in the diffuse layer for “surface”. “Surface” should be the surface name, not the surface-site name (that is, no underscore). Special values for “element” include: “charge” - gives surface charge, equivalents. “sigma” - surface charge density, C/m**2. “psi” - potential at the surface, Volts. “water” - mass of water in the diffuse layer, kg.

January 19, 2000: PHREEQC 2.1 is released

Fixed problem with formats for USER_PUNCH and some other formats because of Microsoft C++ 3 digit exponents. Added additional #ifdef’s for PhreeqcI.

December 15, 1999: PHREEQC 2.0 is released on the web

The User’s Guide, which includes theory, description of input, and 18 examples has been revised following final editorial review. The final documentation in PS, PDF, and HTML formats is available on the web. Camera-ready copy is being sent to the printer. The released version number is 2.0. All features for the release version have been implemented and all known bugs have been fixed.

The version for Win9x and WinNT has been packaged with InstallShield for easy installation. A batch script facilitates running the program from any directory. The use of an optional environmental variable ( PHREEQC_DATABASE ) has been added to simplify switching among databases.

The version for Unix is distributed as a compressed tar file. Executables for Linux and SunOS are distributed; the code can be compiled for other platforms using the Makefile in the src directory. A batch script (installed using make install in the src directory, see manual for details), facilitates running the program from any directory. The use of an optional environmental variable ( PHREEQC_DATABASE ) has been added to simplify switching among databases.

New features in PHREEQC version 2 relative to version 1 include capabilities to simulate dispersion (or diffusion) and stagnant zones in 1D transport calculations; to model kinetic reactions with user-defined rate expressions; to model the formation or dissolution of nonideal binary or ideal multicomponent solid solutions; to model fixed volume gas phases in addition to fixed pressure gas phases (bubbles); to allow the number of surface or exchange sites to vary with the dissolution or precipitation of minerals or kinetic reactants; to include isotope mole balances in inverse modeling calculations; to try multiple sets of convergence parameters; to print user-defined quantities to the output file and (or) to a file suitable for importation into a spreadsheet; and to define solution compositions in a format more compatible with spreadsheet programs. The imbedded Basic interpreter has been enhanced to allow user-controlled storage of model quantities, which changes greatly extends the possibilities of interaction between the model and the modeler.

All distributions contain complete documentation in PDF and PS formats, executable (Win32, Linux, SunOS), examples, and source code. Versions are available “as is” with no warranty of correctness of calculations. Send any comments or bug reports to dlpark@usgs.gov.

December 15, 1999: Vincent Post’s PHREEQC for Windows

Vincent Post has developed PHREEQC for Windows, which is available at http://www.geo.vu.nl/users/posv/phreeqc.html. This interface to PHREEQC version 2 allows selection of keywords and options that are added to the internal text editor, where the input file is built. The calculation may be run and the output viewed without leaving the interface. The interface performs syntax checking, identifying lines with input errors. An additional keyword, USER_GRAPH has been added to allow visualization of results.

December 15, 1999: Alpha Test Version of PhreeqcI, Graphical User Interfaces for PHREEQC version 2

Scott Charlton has released an early test version of PhreeqcI for version 2. PhreeqcI runs on WinNT and Win9x and is at http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc and /phreeqci. This interface has screen-driven input and editing for all initial-condition keywords ( SOLUTION , EQUILIBRIUM_PHASES , EXCHANGE , SURFACE , GAS_PHASE , SOLID_SOLUTION , and USE ). All other keyword data blocks must be entered through the text editor in the interface. A tree of keywords from the input file is generated, from which you can copy, cut, paste, drag, and drop. The interface performs syntax checking, identifying lines with input errors. The calculation may be run and the output viewed without leaving the interface.

December 15, 1999: Parallel PHREEQC

A parallel version of PHREEQC that uses calls to MPI is in the works. So far, only the LAM version of MPI has been tested. Factors of 5-10 speedup have been attained for transport simulations on a LAN with up to 20 Sun and Linux machines. Further testing and debugging are needed.

December 15, 1999: PHAST--Development of the 3D Reaction Transport Model is Complete

PHAST combines PHREEQC with HST3D, a 3D ground-water flow model. Only constant density, constant temperature flow is included. PHAST uses a purely sequential algorithm that solves first for the transport of multiple components, reacts each cell of the domain, and then repeats transport and reaction until the total time of simulation has been reached.

Most of the hydrologic features of HST have now been implemented, most recently wells and rivers have been added to PHAST. Another major development was the addition of linearly varying definition of all initial condition and boundary condition properties; this includes chemical compositions of solutions, phase assemblages, exchange compositions, and all other chemical initial conditions. PHAST has all of the chemical reaction capabilities of PHREEQC version 2.0, including kinetic reactions and solid solutions.

A test version of the code (without source code) will be released as soon as the time is found to put a distribution together. Documentation of input formats is reasonably complete. Next phase is to add documentation of the theory of the numerical method and of examples. The code needs thorough beta testing.

October, 1998: PHRQCGRF is released

User’s Guide to PHRQCGRF--A Computer Program for Graphical Interpretation of PHREEQC Geochemical Transport Simulations, by Joseph Vrabel and Pierre D. Glynn, U.S. Geological Survey Open File Report 98-281, 1998, 30 p.

Abstract

This manual describes the capabilities and use of the PHRQCGRF program, a computer code that can be used to create a variety of graphs from the data generated by PHREEQC, the U.S. Geological Survey’s code for simulating geochemical mass transport. The output data from PHREEQC may be plotted against distance, time, or other data listed in the PHREEQC selected output file, and a series of data versus distance graphs can be animated. PHRQCGRF can also extract the data of interest from the PHREEQC transport results and write the datasets to an external file.

Available at http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phrqcgrf.

October, 1998: Version 1.6 is available for Macintosh

Brian Marshall of U.S. Geological Survey, Lakewood, CO (bdmarsha@usgs.gov) has created a Mac version that is available at http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc.

January, 1998: Version 1.6 is released

Version 1.6 contains fixes to a number of bugs. A complete list of updates in the sequence of versions is listed below. This version is available at http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc.

October, 1997: PhreeqcI is released

A pc-based graphical user interface to version 1.6 has been released. It allows the user to format, edit, run PHREEQC input files and examine text output files, all within a single interface. It is available from http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqci.