NCAR / ccpp-framework

Common Community Physics Package (CCPP)
http://www.dtcenter.org/community-code/common-community-physics-package-ccpp/
Other
26 stars 64 forks source link

Implement new constituent property/field to track "above the top of model" values #573

Open peverwhee opened 5 months ago

peverwhee commented 5 months ago

Description

At least one CAM chemistry package (TUV-X) requires constituent values above the top of the model. We will need a mechanism for optionally allocating and keeping track of these values for the constituents that need this information.

Solution

  1. Implement new logical metadata property above_model_top that, when true, will trigger relevant allocation/setting of below
  2. Implement a new constituent property above_model_top_index that will return -1 if the constituent doesn't need this information and otherwise the index of the array in (3) below
  3. Implement a new field in the ccpp_model_constituents_t object above_model_top_array that will be an allocatable array of 2 dimensions (dimension 1 will be allocated to the number of columns, dimension 2 will be allocated to the number of constituents that require this field). This field will also be added to ccpp_constituent_prop_mod.meta with standard name ccpp_constiutent_above_model_top_values