Some notes to the chemical speciation modelling software EQ3/6

Remark: The following notes pertain to EQ3/6 software version 7.2b and the manual version 7.0. It is written and maintained by Thomas Wolery ( ) from the Lawrence Livermore National Laboratory / LLNL.


EQ3/6 is extremely sensitive towards the alignment of input data. Shifting a flag or a concentration value just one space to the left or right will either drastically falsify your computation or even crash the program. Thus, avoid the creating of input files from scratch by any means, but rather take an input file that already proved to run correctly and modify it to your present needs. The same applies to any changes to the thermodynamic databases.

The manual incorrectly defines the Davies equation for activity coefficients placing +0.2 as factor before the linear ionic strength term, where -0.2 would be right. The code itself is correct.


The manual contains several errors:

Modifications of equilibrium constants

Setting the kxmod variable to "0" will replace the log K value used for the dissociation constant of the species specified before. However, this may cause strange effects in cases where the dissociation reaction in the data0 input file is wirtten in terms of an auxiliary master species. Then EQ3NR (and also EQ6, if such kxmod settings are propagated through an included pickup file) first re-writes the dissociation reaction taken from data0 in terms of the proper master species, which of course gives a totally different log K value, and then replaces the thus recomputed log K by the value specified by the user with the kxmod option. It is much safer, therefore, to set kxmod to "1" and use the increment log K feature, which will always work as expected.

All modifications apply directly for the temperature specified in the input file.

Computation of redox equilibria


The tables *.6tx and *.6tab can be suppressed by setting option iopt13 to "-1".

If only the precipitation of all oversaturated phases is of interest, the option nmodl1 must be set to "0". However, if the dissolution of solid phases or the titration with another solution is the target, nmodl1 must be set to "1" or "2", respectively.

When specifying entries in the pure mineral subset suppression, for each of these suppression statements also an entry for nxopex must be given. If there is no such exception, specify zero.

Run length

The overall length of EQ6 runs is determined by at least three values:

In case of "real" kinetics another limitation may be the time maximum (set in timemx).

The reaction may, however, stop earlier in case of reaching chemical equilibrium, i.e. any further addition of reactants will not change the chemical state of the system).

The overall size of EQ6 output files is not only determined by the final reaction progress state but also by the print step settings, namely dzprnt and ksppmx, with dzprnt directly specifying the maximum step size, not only the printing intervall !

Gas reservoirs

If a solution should be in contact with an "unlimited" gas reservoir, the option nffg must be set to n (with n denoting the number of distinct gases in the reservoir). For each such gas, two lines have to be included in the input file (Attention: The manual gives wrong formatting strings):
- Name of the gas (12x,a12)
- Total amount and Log partial pressure (2(12x,e12.5))
Any amount of gas additionally defined in the pickup file will not change the final result, but may affect the convergence. At least some trace amount must be defined in the pickup file to introduce the elements of the gas to EQ6.

Computation of redox equilibria

All EQ3NR calculations should be made with REDOX=ON (also for the purpose of generating reactants of type 2). Moreover, in EQ6 iopt11 should be set to "0". Otherwise, not only any redox reaction will be suppressed, but also the charge balance is not kept !

If no redox aspect is expected it is wise to set the species type for O2(aq) and H2(aq) in the respective EQ3NR input file to "27".


If the reactant should be a solution, all its elements must be present (maybe only in trace amounts) also in the pickup file to be incorporated. Moreover, jcode must be set to "2".

Suppression of species

Any basic species suppressed in an EQ3NR run by setting jflag to -1 reappear in EQ6, i.e. this exclusion is not passed on to EQ6. The only safe way to suppress species in both EQ3NR and EQ6 is thus to set the kxmod option to -1 for the respective species. The latter is also the only way to suppress gaseous species or solids as they are not considered "basic species".

Pickup files

Pickup files originating from an EQ3NR-Run do not keep any information about solid phases or gas reservoirs determining the solution concentration of a species.

Pickup files originating from an EQ6-Run preserve such information about excess solid phases and gas reservoirs.

Pickup files originating from an EQ6-Run are not correcty formatted. They contain superfluous lines. Anything between the first line with ".endit" and the line starting with "tempci= " must be deleted manually therefore.

In order to define the elementary composition of solutions (as reactants in EQ6), the respective lines from an EQ3NR pickup file can be used, but the component "electr" must be deleted.


If values of 500.000 indicate missing values on the temperature grid for log K, then there is no shift of log K values to the real temperature. The van't Hoff relation is not used. There are delta H values given in the data file, but they are merely comments, and not used at all.

In case of the introduction of a new basic species (master species), its relative position must be the same in all data0 file data blocks.

When a species has to be added to the data base, the appropriate data block (best using another block as template) must be inserted (alphabetically).

When a new species is an aqueous one, it must also be added to either the blocks "single salt parameters" and "mixture term parameters" (in case of the Pitzer model data files) or "bdot parameters" (in case of the simple model files).

The number of ternary mixture parameters in the Pitzer model for ion-ion-interactions is limited in the case of cation1-cation2-anion combinations: only EIGHT different anions are allowed per cation-pair. A similar restrictions applies to the alpha parameters: only FOUR numerically different combinations of alpha1 and alpha2 are allowed. Both limits render really complex systems uncomputable ...

Last Update: November 3, 2016

Home Back to homepage !