PWG Developers' Guidelines

April 2014

Model developments by members of the Paleoclimate Working Group should follow the model development protocols within the component models where the work is done. The guidelines for the different component models can be found at the ‘Developers’ Guidelines’ links on the CESM Working Groups’ web pages: http://www.cesm.ucar.edu/working_groups

Some general recommendations for paleo CESM developers:

  • Developers should contact a member of the relevant NCAR model component development group. In most cases check first with the relevant Working Group NCAR co-chair before starting model development, in order to gain insights into other ongoing developments that might overlap with the planned developments, get feedback on their plans, and plan the best way to implement the required changes.
  • Changes to the existing code base should be kept as small as possible. Some components prefer modular code (see individual component guidelines).
  • The most recent version of the code base should be used for new model developments, and developers should keep their development code up-to-date with changes in the trunk (most easy accomplished by using SVN), to allow for an inclusion in the trunk of the CESM.
    • An introduction to SVN can be found at: http://svnbook.red-bean.com/ 
    • Answers to many SVN questions related to CESM have been answered in the Subversion forum, and new questions may be posted there as well: https://bb.cgd.ucar.edu/forums/subversion-issues
  • Developers repository access can be requested at http://www.cesm.ucar.edu/working_groups/Software/secp/repo_access_form.shtml
  • Model developments that are to be checked into the trunk of CESM need to have been tested in a branch of the SVN repository by the developer. The tests that are required depend on the model component.
  • Model developments/changes need to be accompanied by a technical description of the changes before they can be checked in.
  • The CESM policy for working with development code can be found here, and all developers should be familiar with these policies: www.cesm.ucar.edu/models/codedistribpolicy-3.pdf