LMWG Developers Guidelines
This document outlines the practical steps in the CLM model development process including information on making the case for new scientific contributions to CLM and the software development process. This is a 'living' document that will be updated as the process, tools, and software coding practices are revised. Recommendations for improvement are welcome.
Scientific contributions to CLM
The prospective contributor should present results at an LMWG meeting to make the scientific case for improvement, modification, or addition to the scientific capabilities of CLM. The contributor should provide a detailed scientific argument with supporting analysis, including analyses against existing model simulations and against CLM metrics. Developers are encouraged to run the LMWG Diagnostics Package (e.g., CLM4.5 vs CLM4 plots). A publication supporting the scientific case for the proposed model improvement is highly recommended. The LMWG co-chairs will then consult with the LMWG and any other relevant working groups, consider the proposed development within the context of existing CESM and LMWG priorities, and if appropriate will consult with the CESM SSC prior to making a decision as to whether or not the contribution should be incorporated onto the CLM science development branch or CLM trunk.
The figure below outlines the typcial steps in the model development process. Note that this is simply a general guideline. Model development is a fluid process that requires careful consideration of contributions individually and together.
Software development guidelines
General information on the steps in the model development process including information on coding standards, maintaining a branch, testing, and working with the CLM Code Management Team
CLM is now being developed as the climate instantiation of the Community Terrestrial Systems Model (CTSM), within a git public repository. CTSM is a community effort to unify and simplify the terrestrial components of an Earth System prediction framework.
Other helpful software development guideline links
- CLM testing
- Coding practices
- Using SVN to work with development branches
- Upcoming CLM branch and trunk tags
- Recent CLM code refactoring