User's Guide to PHREEQC
However, PHREEQE suffers from a number of deficiencies. As a speciation code, it lacks flexibility in defining mole balances on valence states and in distributing redox elements among their valence states. As a reaction path code, it does not keep track of the mass of water in solution nor the moles of minerals in contact with the solution. Surface complexation, ion exchange, or a fixed-pressure gas phase can not be modeled without program modification. Determining reaction paths and thermodynamically stable mineral assemblages is time consuming and tedious. The numerical method fails for some redox problems, which causes the program not to converge to the correct solution to the algebraic equations. Perhaps most importantly, the fixed format input and reliance on index numbers is cumbersome and prone to errors. There are also many Fortran-imposed limits, such as limits on the numbers of elements, aqueous species, phases, solutions, and lengths of character strings (mineral names for instance) that are inconvenient and time consuming to modify.