-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CCPP-compliant cnvc90 and initial version of HRRR Thompson MP #69
CCPP-compliant cnvc90 and initial version of HRRR Thompson MP #69
Conversation
… and enable it in the SDF
461406d
to
a4cba1f
Compare
Update 20180525: New functionality that runs all scheme _init routines as part of ccpp_physics_init after an optional/additional init routine XXX specified as XXX in the SDF. For XXX, only the XXX_run function is used (it doesn't make sense to run an _init routine of a special initialization scheme). Similarly, all scheme _finalize routines are run as part of ccpp_physics_finalize, before an optional/additional finalize routine YYY specified as YYY in the SDF. For YYY, only the YYY_run function is used (it doesn't make sense to run a _finalize routine of a special finalization scheme). The flow currently is: init stageXXX_run run stagescheme_runs as before, all or selected groups or individually finalize stageall scheme_finalize It can be argued if XXX_run should be after all scheme_init (YYY_run before all scheme_finalize), but in my opinion the current order makes more sense, since specialized init schemes (XXX) and finalize schemes (YYY) most likely have to prepare/cleanup stuff for/from the physics schemes. |
Using only |
Is there any reason for the adjective / verb conflict between |
@gold2718 ohh that's a good one. The original implementation had init and fini for all internal code in ccpp-framework, but requested init and finalize from the schemes. I made this consistent at least by changing fini to finalize. Since then, I was unhappy with having init (short) and finalize (long), so I very much like your idea of init and final as long as we do this for the ccpp-framework itself AND the ccpp physics schemes (requires updating a bit of documentation, but we would still be able to do that for the SCM-CCPP v2 release end of June). EDIT: having said that, I would want to make this a separate, follow-up change for clarity. |
I missed the second part of @gold2718 's comment, and I am not sure I understand it correctly. For sure we can change that to running _init and _final(ize) instead of _run for the But this also means that the special my_special_init_and_final_scheme that has an empty _run routine. Looking at the extra lines of code for handling the Any comments? @gold2718 @grantfirl @ligiabernardet @llpcarson |
@climbfuji, There were some formatting issues with your comment (you need to quote or use code blocks with angle bracket tokens) so I edited it.
results in a call to the routine,
|
Apologies for the bad formatting! Yes that's totally fine with me, and that's also how I understood your comment. I am just wondering whether we should give up that concept of having extra
(the format of this part got messed up in my previous comment) because the |
I think the issue of having I find the issue of group names to be more problematic. For a suite to be interoperable, each host model that uses it must be able to recognize and properly use each group name. This is not the best place for a discussion of group names but I am not sure what to do with names such as |
…_physics_init after an optional/additional init routine XXX specified as <init>XXX</init> in the SDF. For XXX, only the XXX_init function is used, unless XXX is also specified as additional finalize routine. Similarly, all scheme _finalize routines are run as part of ccpp_physics_finalize, before an optional/additional finalize routine YYY specified as <finalize>YYY</finalize> in the SDF. For YYY, only the YYY_finalize function is used, unless YYY=XXX (in which case both XXX_init and XXX_finalize are used). merge with 9f2e0f7
…s _init, _run and _finalize to the scheme names to determine the function names
a4cba1f
to
6be240f
Compare
Update 20180529: following @gold2718 's recommendation, the logic has been changed to run the _init subroutine of the additional/optional suite init scheme specified as |
Parts of this PR (cnvc90) where replaced by #74. Once a separate PR for the HRRR Thompson scheme is created and merged, this PR will be closed. |
The proposed changes in this PR have been superseded by separate PRs for updating the metadata tables for HRRR physics (Thompson MP and RUC LSM), the implementation of the first call to CCPP-compliant physics (cnvc90), and the addition of the HRRR Thompson MP scheme. |
WORK IN PROGRESS:
(1) use CCPP-compliant cnvc90 scheme in NEMSfv3gfs
(2) initial version of HRRR Thompson MP (aerosol-aware) in CCPP