-
Notifications
You must be signed in to change notification settings - Fork 18
[release/v1] Third major update in v1 branch: update with changes from main, substitute abbreviations, include base name definitions #104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Update StandardNamesRules.rst: add _due_to_planetary_boundary_layer (ESCOMP#80) * Update StandardNamesRules.rst: add _due_to_PBL_processes and other process suffixes
Add/modify skin temperature at surface variables. (ESCOMP#84) * Add JEDI skin temperature variables * Change sea to ocean
add emissions names (ESCOMP#86) This adds emissions names to the CCPP standard names
- start adding more units
… for velocity_potential
…ion between original CF standard names and ESM standard names (since we are so far removed now)
…lude long_name descriptions for each
…ones like "energy" and "volume" - Add new generic name "heat" - Remove some generic names that do not exist in CF and are not used in any existing standard names (in this dictionary or CCPP in general) - data_mask - specific_eddy_kinetic_energy - Add the first "comment" entry as an example of how it might be used - Add a couple new "base name" entries
…ous ones or others I will open an issue for) - Removing a few base names that don't make sense in isolation (date) - Remove duplicates (density, heat_flux, ozone, streamfunction)
| * `stress`: A deformation force across a unit area | ||
| * `real`: units = Pa | ||
| * `streamfunction`: streamfunction | ||
| * `streamfunction`: Streamfunction |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be one or two words?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From a quick survey of the internet and my bookshelf it seems that both are acceptable, with a slight preference for the single-word streamfunction in atmospheric science:
streamfunction
- https://glossary.ametsoc.org/wiki/Streamfunction
- Wallace and Hobbes Atmospheric Science
- Holton Dynamic Meteorology
- Kalnay Atmospheric Modeling, Data Assimilation and Predictability
stream function
- https://en.wikipedia.org/wiki/Stream_function
- Djurić Weather Analysis
Metadata-standard-names.md
Outdated
| * `vertical_index_at_top_interface`: Vertical index at top interface | ||
| * `integer`: units = index | ||
| * `number_of_openmp_threads`: Total number of thread blocks which the host model may use to call CCPP physics run groups during the CCPP run phase. | ||
| * `number_of_openmp_threads`: Total number of thread blocks OpenMP (shared-memory) parallel threads. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * `number_of_openmp_threads`: Total number of thread blocks OpenMP (shared-memory) parallel threads. | |
| * `number_of_openmp_threads`: Total number of OpenMP (shared-memory) parallel threads. |
Metadata-standard-names.md
Outdated
| * `ccpp_block_count`: Ccpp block count | ||
| * `integer(kind=)`: units = count | ||
| * `ccpp_block_sizes`: Ccpp block sizes | ||
| * `integer(kind=)`: units = count | ||
| * `ccpp_thread_number`: Number of current thread block. This variable may only be used during CCPP run phase |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * `ccpp_block_count`: Ccpp block count | |
| * `integer(kind=)`: units = count | |
| * `ccpp_block_sizes`: Ccpp block sizes | |
| * `integer(kind=)`: units = count | |
| * `ccpp_thread_number`: Number of current thread block. This variable may only be used during CCPP run phase | |
| * `ccpp_block_count`: CCPP block count | |
| * `integer(kind=)`: units = count | |
| * `ccpp_block_sizes`: CCPP block sizes | |
| * `integer(kind=)`: units = count | |
| * `ccpp_thread_number`: Number of current OpenMP thread. This variable may only be used during CCPP run phase |
StandardNamesRules.rst
Outdated
| | due_to_dry_convection | ||
| | due_to_gravity_wave_drag | ||
| | due_to_gwd | ||
| | due_to_convective_ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the trailing underscore intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch, this should have been due_to_convective_gwd. Fixed.
nusbaume
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all of these great updates @mkavulich! I just had some wording-related requests and a few other small changes.
StandardNamesRules.rst
Outdated
| +---------------------+---------------------------------------------------------+ | ||
| | shoc | simplified higher-order closure stochastic scheme | | ||
| +---------------------+---------------------------------------------------------+ | ||
| | shum | Stochastic HUMidity stochastic physics option | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| | shum | Stochastic HUMidity stochastic physics option | | |
| | shum | stochastic humidity stochastic physics option | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I included the capitalization to make the term easier to parse (since "stochastic" appears twice, once as the title of the option, the other as a descriptor). I did some digging and found a potentially better description of the scheme, let me know if this looks okay
| +---------------------+---------------------------------------------------------+ | ||
| | mynn | Mellor-Yamada-Nakanishi-Niino scheme | | ||
| +---------------------+---------------------------------------------------------+ | ||
| | nir | near-infrared part of the EM spectrum (radiation) | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| | nir | near-infrared part of the EM spectrum (radiation) | | |
| | nir | near-infrared part of the shortwave spectrum (radiation) | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is near-infrared still considered shortwave? I thought that any wavelengths longer than visible would fall in the "longwave" category.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the radiation parameterizations, UV-B, nearIR and uv-vis are in the SW. But yeah , it's confusing.
Your call. Leave as is, or maybe change EM to electromagnetic?
Metadata-standard-names.md
Outdated
| * `real`: units = m2 s-1 | ||
| * `cloud_area_fraction`: Fraction of an area (usually within a grid cell) containing cloud | ||
| * `real`: units = fraction | ||
| * `cloud_condensate`: cloud_condensate |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * `cloud_condensate`: cloud_condensate | |
| * `cloud_condensate`: Amount of condensed water in cloud |
Metadata-standard-names.md
Outdated
| * `tendency_of_air_temperature_to_withhold_from_sppt`: Tendency of air temperature to withhold from sppt | ||
| * `tendency_of_air_temperature_to_withhold_from_sppt`: Tendency of air temperature to withhold from stochastically perturbed physics tendencies | ||
| * `real(kind=kind_phys)`: units = K s-1 | ||
| * `tendency_of_activated_cloud_condensation_nuclei_from_climatology`: Tendency of activated cloud condensation nuclei from climatology |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * `tendency_of_activated_cloud_condensation_nuclei_from_climatology`: Tendency of activated cloud condensation nuclei from climatology | |
| * `tendency_of_activated_cloud_condensation_nuclei_from_climatology`: Change of activated cloud condensation nuclei from climatology per unit time |
| </standard_name> | ||
| <standard_name name="thickness" | ||
| long_name="thickness"> | ||
| long_name="The vertical distance between two constant-pressure surfaces"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| long_name="The vertical distance between two constant-pressure surfaces"> | |
| long_name="The distance between two surfaces"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?
standard_names.xml
Outdated
| </standard_name> | ||
| <standard_name name="tendency_of_dry_air_enthalpy_at_constant_pressure" | ||
| long_name="Tendency of dry air enthalpy at constant pressure"> | ||
| long_name="Tendency of dry air enthalpy at constant pressure; d/dt(Cp*T)"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you agree with the long_name changes int Metadata-standard-names.md, should we also make them here? (i.e. tendency yadayada -> Change of yadayada per unit time.)
standard_names.xml
Outdated
| </standard_name> | ||
| <standard_name name="do_shoc"> | ||
| <standard_name name="do_shoc" | ||
| long_name="Do Simplified Higher-order Closure stochastic physics scheme"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| long_name="Do Simplified Higher-order Closure stochastic physics scheme"> | |
| long_name="Do Simplified Higher-Order Closure stochastic physics scheme"> |
standard_names.xml
Outdated
| </standard_name> | ||
| <standard_name name="do_shoc_after_convection"> | ||
| <standard_name name="do_shoc_after_convection" | ||
| long_name="Do Simplified Higher-order Closure stochastic physics scheme after convection parameterization"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| long_name="Do Simplified Higher-order Closure stochastic physics scheme after convection parameterization"> | |
| long_name="Do Simplified Higher-Order Closure stochastic physics scheme after convection parameterization"> |
Co-authored-by: Jesse Nusbaumer <[email protected]>
Co-authored-by: Dustin Swales <[email protected]>
mkavulich
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your thorough reviews! @nusbaume I think I have addressed all your suggestions. @dustinswales I have addressed most of your comments and had a couple follow-up questions.
| +---------------------+---------------------------------------------------------+ | ||
| | mynn | Mellor-Yamada-Nakanishi-Niino scheme | | ||
| +---------------------+---------------------------------------------------------+ | ||
| | nir | near-infrared part of the EM spectrum (radiation) | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is near-infrared still considered shortwave? I thought that any wavelengths longer than visible would fall in the "longwave" category.
StandardNamesRules.rst
Outdated
| +---------------------+---------------------------------------------------------+ | ||
| | shoc | simplified higher-order closure stochastic scheme | | ||
| +---------------------+---------------------------------------------------------+ | ||
| | shum | Stochastic HUMidity stochastic physics option | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I included the capitalization to make the term easier to parse (since "stochastic" appears twice, once as the title of the option, the other as a descriptor). I did some digging and found a potentially better description of the scheme, let me know if this looks okay
Metadata-standard-names.md
Outdated
| * `diffuse_nir_albedo`: Albedo of diffuse incident near-infrared radiation | ||
| * `real`: units = 1 | ||
| * `diffuse_nir_shortwave_flux`: Flux of diffuse near-infrared and shortwave radiation | ||
| * `real`: units = 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for catching these, I think I just forgot to finish my review of correct units for this section. And I don't even know how some of them got J s-1 instead of W s-1...
Metadata-standard-names.md
Outdated
| * `graupel`: Precipitation consisting of heavily rimed ice crystals | ||
| * `gravitational_acceleration`: Gravitational acceleration | ||
| * `real`: units = m s-2 | ||
| * `hail`: Precipitation consisting of large pieces of ice formed in convective clouds |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was hard for me to find a concise and accurate description of what "hail" actually is that excludes ice pellets. Graupel doesn't need the "convective" descriptor because it doesn't happen from non-convective clouds, but I don't know how best to distinguish hail without including that descriptor.
I gave it another shot to hopefully satisfy both of us.
Metadata-standard-names.md
Outdated
| * `pressure`: Pressure | ||
| * `real`: units = Pa | ||
| * `rain`: Precipitation of liquid water from clouds | ||
| * `rain_water`: Liquid water precipitation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point; there was only a single instance of the literal rain_water string so I just consolidated it to rain.
| * `temperature`: Temperature | ||
| * `real`: units = K | ||
| * `temperature_flux`: Flux of temperature across a unit surface | ||
| * `real`: units = K m s-1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is specifically "temperature flux" not heat flux, so I'm pretty sure these units are correct. See, for example, Table 1 here
| * `potential_temperature_of_air`: air potential temperature | ||
| * `real(kind=kind_phys)`: units = K | ||
| * `air_potential_temperature_on_previous_timestep`: air potential temperature on previous timestep | ||
| * `potential_temperature_of_air_on_previous_timestep`: air potential temperature on previous timestep |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The suffix listed in the Standard Name rules is "on_previous_timestep" (and it's used in a number of other names) so this would require a larger change if you think it's needed.
nusbaume
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks good to me now. Thanks again @mkavulich!
## Description This PR merges The `release/v1` branch into the `main` branch. The `release/v1` branch was split off from `main` about a year ago, with the intention to make major rules and name changes to improve the consistency and maintainability of both the rules and the names, without giving major inconveniences/disruption to those currently making use of the main branch. After a year of discussion and changes, it is time to bring these changes to their final resting place in the main branch. The major breaking and/or non-back-compatible changes can be summarized as such (See the subsections below for specific details about these changes): - the physics `kind` field is removed - the `long_name` field is changed to `description` - Several changes to particular terms and components of existing names have been made After this PR is merged, a `v1.0.0` tag will be created, representing the first true "versioned" version of the ESM Standard Names. While more rule changes are likely in the future to resolve open and future issues, this should be a more stable jumping-off point to allow updates and reconciliation with the names in the CCPP physics repository, which has not been resolved in many years now. For those who have not been following along with the discussion and changes related to the **v1** branch, here is a summary of each of the changes made on this branch: ### #85 First rules update, fixing misspelled standard names This first change introduced some changes to the Rules document based on discussion in the CCPP framework regular meetings. These rules changes can be summarized as follows - Introduced a more rigorous and standardized formula for constructing new standard names, with specific rules and definitions of each component of the name, attempting to cover all possible cases - Introduced the concept of "suffixes" to compliment prefixes, with mixing_ratio_wrt``_Y`` being the first example - Introduced the concept of "Reserved phrases"...for now only including "CCPP" as a reference to CCPP-specific variables In addition, a large number of misspellings within the existing names and rules were fixed. ### #87 Second rules update in v1 branch, update several name types This second change introduced the concept of "base names"; representing the main entity from which a standard name is constructed. Some existing prefixes (`surface_X` and `air_X`) were converted to suffixes (`X_at_surface` and `X_of_air`) to improve consistency with other existing names and rules, and some superfluous `surface` wording was removed from several names. The definitions for mixing ratios were improved, and the rules for constructing new names were updated and improved. ### #104 Add techincal specification, substitute abbreviations, include base name definitions This third rules change included some info about technical specifications of the standard names repository, and some formatting improvements. Instances of the term `weight` were changed to `scaling_factor` to avoid potential confusion with the physical property of weight. `long_name` descriptions were added for all the new "base names" with a few minor exceptions. Some new abbreviations were defined to help shorten names. Some unused and duplicate entries were removed. Finally, CCPP-specific variables were consolidated into their own section. ### #116 Rename long_name --> description, update description rules, expand list of abbreviations This fourth change renamed the `long_name` field to `description`, clarifying that this field should be unique, and improving/fixing some existing descriptions. Some more duplicate entries were removed. Some additional new abbreviations were defined to continue shortening names. Finally, continued defining more abbreviations to help shorten standard names further. ### #124 Remove `kind` entry, clarify rules for units and disallowed terms This fifth and final change to the v1 branch (aside from another PR to resolve intervening changes from the main branch) updated the rules to clarify disallowed terms and the role of `units`, and removed the `kind` entry. The `constants` section was organized alphabetically, and changed some names regarding `dry_air`. ## Issues Resolves - #48 - #68 - #94 - #102 Also reference already-closed issues: - #92 - #93 - #95 - #103 --------- Co-authored-by: Jesse Nusbaumer <[email protected]> Co-authored-by: Dom Heinzeller <[email protected]>
Here is the next round of proposed changes, resolving several open issues related to topics of discussion over the past several weeks:
List of changes
main#91: merge in latest relevant changes from the main branchweighttoscaling_factorfor clarity #92: Convert instances ofweighttoscaling_factorarea) and/or undefinable (e.g.energy) names, and a few more that I will open an issue for shortlyThere were also a few changes not covered by issues:
_for standard_names themselves)mixing_ratioentry)air_potential_temperature-->potential_temperature_of_airper our previous discussions about designating mediums except for variables likeair_temperaturethat are in common use.Please suggest changes if you think they are needed! This is especially true of the definitions; this effort is far from perfect, I just wanted to get something reasonable down. I started from CF standard names and AMS Glossary of Meteorology where possible, but many of them probably need a lot of work, especially since the general definition may be different from that used in Earth System Modeling (and context may even change within different ESM fields!).