Add support for reading constituents through input names in MPAS dynamical core - #543
Conversation
…bdriver Also refactor the `dyn_mpas_define_scalar` subroutine because it is getting too big and too complex to follow.
The `dyn_mpas_get_pool_pointer` subroutine comes with built-in error checking. Make use of it more.
By convention, the variable name for water vapor mixing ratio is "Q" in CAM. However, the MPAS dynamical core in CAM strays from this convention and uses "qv" instead. As a result, all MPAS IC files in CESM input data are plagued with the unconventional variable name. Add "qv" to the candidate input names for water vapor mixing ratio until we can replace those MPAS IC files.
|
You might be interested in some parts of this PR because it adds a new feature for CAM-SIMA that depends heavily on the internals of MPAS. Thanks for your time in advance! Specifically, commit b086d37 dynamically constructs a new field called The idea is to let the MPAS I/O stream facilities (e.g., |
Tag name
None (Bit-for-bit)
Originator(s)
kuanchihwang
Description (include the issue title, and the keyword ['closes', 'fixes', 'resolves'] followed by the issue number)
Currently, MPAS dynamical core in CAM-SIMA only attempts to read constituents through the standard names. This PR adds support for also attempting the input names defined in the CAM-SIMA registry. Following the design principles of MPAS dynamical core, CAM-SIMA does not directly participate in the reading of constituents. Instead, MPAS dynamical core handles the actual I/O with its internal infrastructure.
Additionally, the
dyn_mpas_define_scalarsubroutine in the MPAS subdriver has been refactored to improve readability and reduce cyclomatic complexity. Pointer safety has been enhanced in the MPAS subdriver.Describe any changes made to the build system
None
Describe any changes made to the namelist
None
List any changes to the defaults for the input datasets (e.g., initial, boundary datasets)
None
List all files eliminated and why
None
List all files added and what they do
None
List all existing files that have been modified, and describe the changes
Regression tests
Pass.
Known failing test.
Pass.