ESCOMP / CAM-SIMA

Community Atmosphere Model - System for Integrated Modeling of the Atmosphere
3 stars 12 forks source link

Constituents #206

Closed peverwhee closed 1 year ago

peverwhee commented 1 year ago

Overview

Incorporate constituents into CAMDEN.

The constituent ddt code is auto-generated by the framework. In the CAMDEN infrastructure code, the cam_constituents module keeps track of the constituent properties and indices for use by the host.

Key Changes

Externals Update: new framework tag (on my fork; will open PR to NCAR/ccpp-framework/feature/capgen after this PR) cam_constituents.F90: constituents module; initialize constituent properties & provide get methods cam_comp.F90: add register constituents air_composition.F90: Move composition-dependent variables to the registry to avoid circular dependency; enable constituents inputnames_to_stdnames.py: script to convert input names in snapshot file to appropriate standard names [will need to be used until we have a better system for input names in the framework (needs design) write_init_files.py: Updates to handle constituents differently than other required variables

closes #197 closes #207 closes #211 addresses #168

cacraigucar commented 1 year ago

Ran the following tests today and they all work as expected.

These tests are in addition to the previously reported tests: The following jobs have advected=true and pear added to the calling list for the appropriate calling lists: Note that the first instance in the suffix name indicates the subroutine and the variable is intent(out) in that routine.

pear_run ( My original pear : Adds a constituent (and probably shouldn't per Jesse's suggestion since it does not have pear initialized in the init phase so that there are valid values for the dycore) pear_initrun - Works as it should and adds constituent pear_init - works as it should and adds constituent