There are several reasons for obtaining low quality results, the most obvious of which is that for general work the default criteria will result in a difference in ΔH_{f
}of less than 0.1 kcal/mol. This is only true for fairly rigid systems, e.g. formaldehyde and benzene. For systems with low barriers to rotation or flat potential surfaces, such as aniline or water dimer, quite large ΔH_{f
}errors can result.

Self-consistency test

The SCF iterations are stopped when two tests are satisfied. These are (1) when the difference in electronic energy, in eV, between any two consecutive iterations drops below the adjustable parameter, `SELCON`, and the difference between any three consecutive iterations drops below ten times `SELCON`, and (2) the difference in density matrix elements on two successive iterations falls below a preset limit, which is a multiple of `SELCON`.

SELCON is set initially to 0.0001 kcal/mol; this can be made 100 times smaller by specifying `
PRECISE` or `FORCE`. It can be over-ridden by explicitly defining the SCF criterion *via* `
SCFCRT=1.D-12`, or by use of `
RELSCF=0.1`.

SELCON is further modified by the value of the gradient norm, if known. If `GNORM` is large, then a more lax SCF criterion is acceptable, and `SCFCRT` can be relaxed up to 50 times its default value (using `RELSCF=50`). As the gradient norm drops, the SCF criterion returns to its default value.

The SCF test is performed using the energy calculated from the Fock matrix which arises from a density matrix, and not from the density matrix which arises from a Fock. In the limit, the two energies would be identical, but the first converges faster than the second, without loss of precision.

A common source of confusion is the limit to which the `GNORM` should be reduced in order to obtain acceptable results. There is no easy answer. However, a few guidelines can be given.

First of all, setting the `
GNORM` to an arbitrarily small number is not sensible. If `GNORM=0.000001` and `LET` are used, a geometry can be obtained which is precise to about 0.000001 Å. If `ANALYT` is also used, the results obtained will be slightly different. Chemically, this change is meaningless, and no significance should be attached to such numbers. In addition, any minor change to the algorithm, such as porting it to a new machine, will give rise to small changes in the optimized geometry. Even the small changes involved in going from one version of MOPAC to another causes small changes in the optimized geometry of test molecules.

As a guide, a `GNORM` of 0.1 is sufficient for all heat-of-formation work, and a `GNORM` of 0.01 for most geometry work. If the system is large, you may need to settle for a `GNORM` of 1.0-0.5.

This whole topic was raised by Dr. Donald B. Boyd while he was at Lilly Research Laboratories, who provided unequivocal evidence for a failure of MOPAC and convinced me of the importance of increasing precision in certain circumstances.