This part of the coupler documentation provides details of the cpl6 source code. This includes where to find the code and build it, variable and file naming conventions, descriptions of the cpl6 version of the Coupler main and the objects and methods of cpl6. If a user wishes to modify the coupler, including changing or adding fields transferred between models, this part should be reviewed carefully. Normal users of CCSM3 may skip this part.
One of the reasons cpl6 was created was to allow the Coupler in CCSM to be run as a distributed memory parallel application. Previous versions of the coupler allowed some shared-memory parallelism using OpenMP calls however distributed memory parallelism is sufficiently different and presented so many challenges that it was necessary to build a new coupler from scratch. Some familiarity with parallel programming may be necessary to understand some of the datatypes and methods in cpl6.