PHREEQC can model kinetic reactions of any type in a perfectly general and flexible manner.
Kinetic reaction rates are defined with keyword RATES in the form of BASIC programs.
The rates are called with keyword KINETICS, which defines the time steps, the chemical formula of the reactant, and parameters that are used in the rate.
BASIC programs consist of numbered lines with statements that resemble the formula in a spreadsheet cell.
Special functions give access to the chemical variables of PHREEQC. These functions
are described in the PHREEQC manual in "The Basic interpreter", Table 8.
A simple example is the kinetic dissolution of quartz, cf. PHREEQC file kin_qu.phr.
The rate is programmed in BASIC as:
RATES Quartz -start 1 A0 = parm(1) 2 V = parm(2) 10 rate = (A0 / V) * (m/m0)^0.67 * 10^-13.7 * (1 - SR("Quartz")) 20 save rate * time -end
Keyword KINETICS calls the rate. Under this keyword, A0 and V are defined with the identifier -parms.
The graph shows the increase of the Si concentration in time for typical conditions in a soil, A0 = 23
m2 and V = 0.16 L.
The definition of the kinetic rates can be simplified when a subroutine is written that defines the form of the rate equation, and does the calculations with numbers entered with -parms, see kinetic rates for minerals.