I will present an overview of the methods we use to generate bit-reproducible
solutions of the Modular Ocean Model (MOM), a Fortran-based model widely used
in weather and climate simulations. I will briefly describe the overall
structure of the solvers as well as its verification and regression test
suites. This is followed by a discussion of the more novel testing methods of
dimensional and rotational invariance.
Dimensional verification is based on power-of-two rescalings of the model
parameters. The dimensions generally correspond to physical units, such as
length and time, although there may be multiples scales of each instance.
The rotational verification is used ensure the invariance of the numerical
solvers. We apply an "index rotation" to the model inputs, parameters, and
coordinates, so that the fields are rotated in memory while retaining their
These methods have proven capable of detecting subtle errors in complex
numerical expressions, and further validate Fortran as a platform for producing
robust bit-reproducible solutions in forecasting and academic research.