Validation of the CCM2 implementation has been done on several levels. Code internals and algorithm equivalency must be checked for any code port. But as a climate model, special steps are required for CCM2. The model has already been validated by NCAR as a viable representation of the earth's atmosphere and as a climate model yielding present day earth climate statistics when forced by present climatological boundary conditions. The purpose of the validation studies here, is not to return to validation against observational data but to verify that the ported model yields the same climate statistics as any other implementation. Specifically, output is compared with a set of Cray YMP runs. Since the underlying weather phenomena modeled by a climate model is sensitive to initial conditions, so is the CCM2. Due to differences in machine arithmetic, the particular path taken by the computation will not be the same on two different machines. But the speed of separation of the paths follows known rates and the time averaged statistics should be the same within bounds of climate variability. So the comparison with another machine implementation is not arbitrary. It is recommended that any port of the PCCM2 to another platform perform the same validation exercises.
As a first order check on accuracy and the parallel implementation a check is performed of the transformation of initial conditions. Input data are read and transformed to spectral space in the initialization phase of the code. After spectral truncation and transformation back to physical space the data should match very closely (machine precision) with the CRAY result. This is the first check and validates the parallel spectral transform. The second check verifies that the growth of error between the parallel (or ported sequential) results and the NCAR CRAY results is within expected bounds. A third validation compares the monthly averages for all prognostic fields at the end of a three month perpetual January simulation. Finally, climate statistics are examined for seasonal averages of multi-year runs.
The standard working precision of the code is 64-bit, although a single precision option is available at compile time. The single precision (32bit) calculation was found to be inaccurate unless the Gauss points and weights used in the spectral method were calculated in double precision. So these parts of the calculation are always performed in 64 bit precision.