Skip to content

Add more metadata on compset-grid compatibility #188

Closed as not planned
Closed as not planned
@billsacks

Description

@billsacks

It is currently hard for users to know what grids are supported for a given compset and which of those are the ones that are most recommended for scientific use. We should add better documentation on this, probably created from additional metadata in one or more xml or yaml files.

@alperaltuntas has started adding more metadata along these lines for the sake of the create_newcase GUI he is working on. He says:

The GUI takes into account the following relational metadata: (1) compset and not compset attributes in config_grids and (2) any rules defined in config_comply.yaml involving grids. See, for example: https://github.com/alperaltuntas/cime/blob/627995b8f582325e054374909663bc3635799b7b/config/cesm/config_comply.yml#L77

Using the above two metadata, the tool comes up with a full list of compatible grids. However, the tool initially shows only a subset, i.e., the suggested grids, which are all the grids that are compatible and have <desc> entries, as you said. Subsequently, the user can expand the list to show all compatible grids including the ones that don't have <desc>.

I can think of the following possible metadata for compset-grid compatibility:

(a) For a given grid, what compsets are / are not compatible: currently specified with compset / not_compset attributes in config_grids.xml; in addition, Alper has an example for T42 in config_comply.yml (T42 can only be used with SCAM)

(b) Similar to (a), but in the other direction: For a given component or specific compset, what grids are / are not compatible: not currently specified in general, but Alper has an example in config_comply.yml (any MOM compset is only compatible with 3 grids)

(c) For a given compset, at which resolutions (if any) is it scientifically-supported: currently defined in config_compsets.xml

(d) For a given compset, what are all of the standard / recommended resolutions at which it is typically run in scientific simulations: not currently specified, but I feel this should be specified to address Dan Marsh's request and similar needs

(e) For a given compset, what are all of the resolutions at which it is regularly tested: can be retrieved from the testlist files, but I'd argue that this is not particularly useful for a user, at least for the I compsets with which I am most familiar

Thinking about uses other than the GUI: I think that (c) and (d) are what we want to present in our online documentation (and also ideally accessible by CIME's command-line tools), whereas (a) and (b) should be used for checking compatibility at create_newcase time and possibly also queryable via some command-line tool – so should be accessible to CIME as well as the GUI.

I would further suggest that (c) and (d) would be easiest to maintain and keep correct if specified for each compset in config_compsets.xml, since this needs to be considered whenever you add a new compset. For (d), one thought is that each compset defined in config_compsets.xml could define an element like <standard_resolutions>. This would be somewhat subjective, but specify the answer to the question, "What resolutions do you typically run this compset at for scientific runs?" This would require some periodic maintenance, but it seems like the burden wouldn't be too great. (We could consider whether it makes sense to have a default value that applies to all compsets defined in a given file. This might make sense for I compsets, but maybe not F compsets or some others. The downside is that it could make it easy to forget to add a compset-specific list in cases where a given compset differs from the default: it might be safest just to require this to be specified explicitly for each compset.)

For (a) and (b) I'm coming to like the idea of using something like config_comply.yml (whether it's in yaml or xml), because that allows grid-centric and compset-centric rules to all be specified in the same place. However, I feel that it's problematic to have some rules specified in config_grids.xml and others specified in config_comply.yml: I think we want all of these rules in a single place that is accessible from both the GUI and CIME's command-line tools.

@alperaltuntas @mvertens @jedwards4b @briandobbins

Metadata

Metadata

Type

No type

Projects

Status

Done (or no longer holding things up)

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions