ESCOMP / CAM-SIMA

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

Need way to set number of constituents at runtime #209

Closed nusbaume closed 4 months ago

nusbaume commented 1 year ago

What is the feature/what would you like to discuss?

In CAM there are several parameterizations (e.g. PUMAS) where namelist flags can add or subtract to the total number of constituents at run time. However, it sounds like the current CCPP constituents object uses the metadata files from schemes to determine the total number of constituents, and thus that number is determined at build time.

Given that we will want to keep some of that runtime functionality, it would be nice to at least have a "remove constituent" function in the CCPP-framework that will allow the host model to specify the removal of a constituent at run time, even if it is in the meta-data file, based on a scheme's namelist settings.

I should also note that one problem with this idea is that it will remove build-time variable checking, i.e. at build time the CCPP might think it has access to a variable, but then at runtime the variable is removed. This ultimately may require additional runtime checks to be added as well by the framework, at least during the model initialization phase.

Finally, just wanted to note that this may need to be a CCPP-framework issue instead of a CAMDEN issue, but it was decided to keep it here for now.

Is there anyone in particular you want to be part of this conversation?

@peverwhee

Will this change (regression test) answers?

No

Will you be implementing this enhancement yourself?

No

nusbaume commented 4 months ago

I believe this issue has been resolved through the work of adding the dynamic constituents infrastructure to the CCPP-framework, and that new infrastructure being brought into CAM-SIMA via PR #247. So I will go ahead and close this issue now.