A major deficiency with geochemical equilibrium models is that minerals, organic substances, and other reactants often do not react to equilibrium in the time frame of an experiment or a model period. A kinetically controlled reaction of a solid or a nonequilibrium solute generates concentration changes of aqueous species according to the rate equation:
where c i,k is the stoichiometric coefficient of species i in the kinetic reaction, and R k is the overall reaction rate for substance k (mol/kgw/s). In general, reaction rates vary with reaction progress, which leads to a set of ordinary differential equations that must be solved.
Kinetic rates have been published for numerous reactions, and for various conditions of temperature, pressure, and solution composition. However, different researchers applied different rate expressions to fit observed rates, and it is difficult to select rate expressions (which commonly have been hard coded into programs) that have sufficient generality. The problem is circumvented in PHREEQC with an embedded BASIC interpreter that allows definition of rate expressions for kinetic reactions in the input file in a general way, obviating the need for hard-coded rate expressions in the program.