Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR enables the integration of ccpp-framework (and ccpp-physics) in the current trunk of FV3 in directories ccpp/{framework,physics}.
Most changes are required for the build system so that it can be used with the existing SCM and with FV3 (current trunk). For the FV3-current trunk, the cmake configuration is cleaner and streamlined between the different CMakeLists.txt (and with ccpp-physics). To avoid introducing all these changes for SCM at the same time, the current - to be improved - cmake config for SCM is retained. A new variable PROJECT is introduced that allows to distinguish between different builds (currently 'CCPP-FV3' for FV3-current trunk and default='unknown' for SCM). The cmake build system needs to be reworked, best would be to introduce project 'CCPP-SCM' for the SCM build and use 'unknown' for building the CCPP standalone.
A new attribute 'initialized' is introduced for type ccpp_t (cdata structure) to test the initialization state of cdata. This is required for calling fast physics in FV3 dynamics through CCPP.
For FV3-current trunk, the list of schemes and their dependencies and their caps is written to makefile and cmakefile snippets and used during the cmake build of ccpp-physics (as opposed to FV3v0, where only the auto-generated list of caps is used, or SCM where all of it is hardcoded). This requires minor changes to the Python prebuild script and configs.
This PR is related to several others listed in a follow-up comment. Results are bit-for-bit identical with FV3v0 and SCM.