tracer tendency diagnostics and related bug fixes#681
Merged
climbfuji merged 37 commits intoJul 21, 2021
Merged
Conversation
… with diagnostics turned on: fv3_ccpp_control_prod fv3_ccpp_gfs_v15p2_prod fv3_ccpp_gfs_v16beta_prod fv3_ccpp_gsd_prod
…microphysics, total physics, and total non-physics, along with all other variables that previously worked. The TKE is being stubborn and the fv3_control does not want to report total physics tendency for liq_wat tracer.
… rename variables, use nprocess_summed to avoid summing sums
Add diagnostic tendencies for all tracers. Move all d*3dt variables into a 4D sparse array stored as `dtend(i,k,dtidx(tracer,process))` to reduce memory usage.
Update gsl/develop from main 2021/05/21
1. Store rtg (AKA clw AKA qtr) instead of gq0 in DCNV and SCNV pre/post for schemes that use convective transport. Tracers handled solely by convective transport (ones not in rtg) are reported as convective transport tendencies. Tendencies for variables in rtg are reported as dcnv and scnv tendencies. 2. Report TKE tendencies from gfs v16 PBL. 3. Add diagnostic tendencies to drag_suite
…encies dtend: add drag_suite tendencies and fix many bugs in convection tendencies
…n_20210531 Update gsl/develop from main 2021/05/31
… tendency storage code.
This was referenced Jun 23, 2021
climbfuji
reviewed
Jul 19, 2021
| # These owners will be the default owners for everything in the repo. | ||
| #* @defunkt | ||
| * @climbfuji @llpcarson @grantfirl @JulieSchramm | ||
| * @DomHeinzeller |
Collaborator
There was a problem hiding this comment.
Please revert this change.
| ep1d_ice(i) = zero | ||
| gflx_ice(i) = zero | ||
| if (iemsflg == 2 .and. .not. flag_init .and. lsm == lsm_ruc) then | ||
| if (iemsflg == 2 .and. (.not.flag_init .or. flag_restart) .and. lsm == lsm_ruc) then |
Contributor
There was a problem hiding this comment.
What is the impact of this flag_restart? Will it fix restart reproducibility for RUC LSM configuration?
Collaborator
There was a problem hiding this comment.
Yes, required when using RUC with its own ice model and iemsflg == 2.
climbfuji
approved these changes
Jul 21, 2021
Collaborator
climbfuji
left a comment
There was a problem hiding this comment.
Looks good.
This PR adds diagnostic 3d tendencies for u, v, t, and all available tracers on a per-process basis. The solution is as general as it can be under the current limitations of the CCPP framework and will carry us through until the new CCPP framework code generator capgen.py provides a better solution (hopefully at some point in the next 12 months).
SMoorthi-emc
approved these changes
Jul 21, 2021
JohanaRomeroAlvarez
pushed a commit
to JohanaRomeroAlvarez/ccpp-physics
that referenced
this pull request
Sep 8, 2025
* Changes to logging and initialization of the CLM Lake Model. 1. Use ice thickness hice(i) to find the level in the lake where ice is zero. 2. Do not allow lake temperature to be below freezing point if there is no ice. 3. If there is no snow or ice, do not allow surface lake temperature to be below freezing point. These changes fixed the problem with large errors in the energy budget at the beginning of the cold-start run with lakes. 4. Added flag to turn on debug print statements in the CLM lake model. * merge ccpp-physics ufs-community#91 (UFS-SRW v3.0.0 SciDoc updates)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 merges NOAA-GSL's gsl/develop branch; the primary update is new tracer tendency diagnostics. Previously, only T, u, v, Qv, and O3 had tendencies. Now, all non-chemical tracers have tendencies, stored in a more efficient manner. The dt3dt, dq3dt, du3dt, and dv3dt arrays are replaced with a 4D array that is sparse in the outer two dimensions, implemented using a 3D array and a 2D index array:
This allows a great number of variables and processes, without tremendous memory usage. It also speeds up the diagnostic tendency code since the user can enable only specific tendencies, instead of using the catch-all ldiag3d and qdiag3d flags.
Extensive documentation on this new feature is on the ccpp-doc PR:
https://github.com/NCAR/ccpp-doc/pull/38/files
This is intended as a medium-term solution, and will be replaced eventually by the new CCPP framework in development. It is possible to generalize this code to work for all models and add other missing features. However, the new framework should provide a more suitable method, when that framework is completed. Hence, we prefer to provide a solution that is good enough for the current feature requests, rather than a completely general solution that would be troublesome in the current framework.
Ancestor repository PRs:
ufs-community/ufs-weather-model#660
NOAA-EMC/ufsatm#332