Suggested changed in MMM surface layer scheme #3
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.
Implementation of the MMM surface layer scheme to the CCPP SCM. Please check the code changes below:
Changes in MMM source code (only to work with CCPP SCM, so SUGGESTION ONLY - MMM’s call on what are useful) (link)
Glue code to connect MMM surface layer to CCPP SCM (link)
Host side (SCM) changes (link)
Some important notes for changes made in MMM source code (#1 above)
sf_sfclayrev_timestep_init removed: 1) In CCPP SCM, surface layer variables do not have to be extracted from a 3D array, since one can pass them from the GFS. 2) Another reason is that the “run" phase only has access to the computational “block/chunk” size in the horizontal dimension, which is a smaller sub-subdomain in the MPI subdomain. So, timestep_init, timestep_finalize do not meet this purpose as they would actually access to the entire MPI subdomain. I am open to add lines in interstitial code (*_pre) to extract surface variables from 3D arrays, but this would require more effort to create more interstitial variables in the CCPP. We can discuss.
Some other key mods in *.meta: 1) corrected standard names; 2) modified knobs from integer to logical; 2) modified all the horizontal dimensions to horizontal_loop_extent, which is the standard name used in CCPP for referring to the computational “block/chunk” size; 3) removed "optional = *” as CCPP does not use that anymore.
Feasibility testing:
Tests were done by using the RAP suite as a starting point to compare 3 sets of experiments for TWP-ICE (tropical deep convection case). I have not applied it to land cases as I need to find a case with a LSM activated in SCM.
Expt 1: MMM sfc + MMM ysu
Expt 2: MMM sfc + MYNN pbl
Expt 3: MYNN sfc + MYNN pbl (default RAP)
#2 vs #3 - to compare two sfc schemes (MMM vs MYNN), both using MYNN PBL
#1 vs #2 - both using MMM sfc, so just to reflect diff. b/t MYNN pbl and MMM ysu
You can find some autogenerated results here (link), which Jimy and I have gone through and find within normal ranges. Interestingly, MMM sfc worked even better than MYNN sfc when both are accompanied with the MYNN PBL.