Transitions Newsletter Header

Community Connections: JEDI projects adopts and contributes to CCPP variable naming standard

Winter 2023

In September of 2022, the JCSDA (Joint Center for Satellite Data Assimilation) officially adopted the CCPP standard names, originally developed for use with the Common Community Physics Package, as the model variable names to be used within the JEDI (Joint Effort for Data assimilation Integration) software.

The JEDI software is employed by many Earth observing systems and requires agreed-upon names to be used for the quantities being input and computed. It is critical that these names are understood identically between systems to prevent code errors, misuse, and duplication. Within the JEDI software, variables are used in two different broad contexts: as variables for Earth observations, and as variables for different Earth system models. Earlier in 2022, a team led by Greg Thompson at JCSDA developed a naming standard for the JEDI observation variables. This team surveyed the available existing variable naming standards and found that none of them were adequate for JEDI needs, and so they developed a new observation variable naming standard, name-by-name.

It is critical that these model variable names are understood identically between systems to prevent code errors, misuse, and duplication.

Later, Steven Vahl (JCSDA) was tasked with organizing the task to develop or adopt a naming standard for the JEDI model variables. Dom Heinzeller, formerly part of the CCPP development team, brought the variable naming standard that had been developed for use with the CCPP to the attention of the team for consideration. Since there were no other known viable model variable naming standards, the decision came down to either adopt the CCPP standard, or extend the naming standard begun by the JEDI Observation team. A meeting of the JEDI community was held to discuss the proposal of adopting the CCPP naming standard. The advantages of adopting it were 1) it already contained some of the needed model variable names, 2) it had a list of rules for creating new names, and 3) it had a Github-based pull request process for adding names and rules that would hopefully minimize the number of meetings needed. The primary disadvantage of adopting the CCPP naming standard was that the names for some quantities would be different from the standard name for the same quantity being used for JEDI observation variables. Ultimately it was decided that within JEDI software there was only one place where these two kinds of variables would be used close to one another, and even there, the context in which the variable was being used (observation or model variable) would be clear, and so the appropriate naming standard for the context could be applied. It should be noted that there is a conceptual difference in how the CCPP standard names are used within JEDI. While CCPP makes use of the standard names only in the metadata tables, JEDI uses them directly in the code and configuration files.

Recently the first few JEDI model variable names were added to the CCPP naming standard via a pull request. More such pull requests will be coming in 2023, and also the new standardized names will be adopted universally inside JEDI code.

XKCD.com by Randal Munroe (https://xkcd.com/927/)
Contributed by Steven Vahl (UCAR and JCSDA) and Dominikus Heinzeller (UCAR and JCSDA)