Backward Compatibility
We cannot remove or change a function in the public C or Fortran API. Please create a github issue if a new API is required.
Code Formatting
Some legacy code in the library may not follow the code format specified below
-
Use spaces instead of tabs. 2 Spaces for each indentation unit (tab)
-
Braces start on the same line as the conditional statement
-
Do not omit braces for conditionals with a single statement. It is ok to write the block with a single statement in a single line
-
Use consts instead of MACROs for constants. Prefer inline functions to MACROs
-
Namespace names start with a capital letter and use underscore to combine words, each starting with a capital letter (e.g. namespace My_Namespace{} )
-
Class names start with a capital letter and do not contain underscores in the name (e.g. class Myclass; )
-
Class member function names are lower case and use underscore to combine words (e.g. void foo_bar(void); )
-
Private member variable names are lower case and have an underscore (e.g. int foo_) at the end
Code development
We closely follow the E3SM project software development guidelines
-
Bugs and issues are tracked using github issues and changes are reviewed and merged using github pull requests.
-
User branches that include changes are created on a branch named, GITHUB_USER_NAME/NAME_DESCRIBING_CHANGE . A github pull request is created for merging the development branch to the "master" branch
-
The github repository has a "develop" branch where all the changes are merged and after nightly testing the changes are merged to the "master" branch.
-
Nightly testing of the "develop" and "master" branches is done using Jenkins and the results are available on CDash
Last updated: 11-18-2025