Tendency application update#299
Conversation
…emove *_of_new_state (default name refers to 'current' value)
…medmfvdifq return new tendencies and new tendency application block in GFS_PBL_generic_post
- Added tendency variables (`ten_t`, `ten_u`, `ten_v`) for temperature and wind tendencies in SAMF deep and shallow convection schemes. - Updated relevant `.meta` files to reflect changes in variable intent (`inout` -> `in` where appropriate) and added tendencies. - Modified Interstitials (`GFS_DCNV_generic_post`, `GFS_DCNV_generic_pre`, `GFS_SCNV_generic_post`, `GFS_SCNV_generic_pre`) to directly use tendencies instead of saved state variables. - Removed redundant saved variables (`save_u`, `save_v`, `save_t`). - Added `delt` to post interstitials.
…' into feature/tendency_cleanup
…_dimension in GFS_time_vary_pre.scm
…endency paradigm; cleanup saving of states no longer needed
…as removed recently
It's automatic in the sense that individual species tendencies exist as slices of the entire tracer tendency array. That is, |
I'm not sure that I understand the question. The precip variables are surface variables that are independent of the tracer concentrations, right? I don't think that we're touching how these precip variables are handled in this PR. Since we're not changing how they're handled, I don't think that this PR could contribute to any double-counting. If a problem exists, it's not being fixed in this PR, but I'm not sure that one exists without specifics. |
I think that in Thompson and TEMPO, the use of |
I see. The reason I brought up it up is that as we move this into a generic_post, I noticed lines 522-526 still perform an explicit accumulation (totprcp = totprcp + rain). My only concern was whether we should take this opportunity to add a guard flag - similar to the one for GWD - to make the routine more robust for different suites, just in case a scheme handles surface updates internally. But if you'd prefer to keep the legacy as-is for this PR, I'm okay with that! |
Fair point. Since the UFS is currently guarded by those logical flags, I'm okay with leaving the formal present() checks for a future cleanup to keep this PR focused. |
There was a problem hiding this comment.
I know this is legacy logic, but with the new tend_opt_mp=2 option, gt0 is no longer updated, making gt0-save_t return zero. Should we change this to ten_t * dtp to match the tracer logic at L554 for consistency?
There was a problem hiding this comment.
It was kept as-is to try to return the correct diagnostic if temperature was being overwritten by radar or updated by the MP scheme, but I see your point. I will add some more logic to try to make sure that the diagnostic is updated correctly, even if the tendency isn't actually being applied within. Standby. There'll be a commit shortly.
There was a problem hiding this comment.
The PBL schemes mostly still operate on the vertically-diffused tracer subset array. This is necessary since most schemes operate on the entire sub-array. Otherwise, there would need to be a lot of host-specific added in every PBL scheme to trigger which tracers get mixed. I think that the question related to handling any variables besides the main state variables differently is probably a question for a different PR. The 2D surface flux and precipitation fields are always assumed to be instantaneous/current (diagnostic as opposed to prognostic) and, as far as I know, don't get time-stepped like the state variables that may necessitate different treatment in different hosts. I think that all dtend usage is guarded by other logical flags like |
|
@rhaesung During the last update from ufs/dev, I had to deal with the fact the the MYNN sfc layer scheme is now a submodule. So, now there is a pull request into the MYNN sfc layer submodule repo with the necessary changes (just metadata changes). There may be a conflict because the submodule hash that the ccpp-physics points to is now quite far behind the top of the main branch in the submodule, and the submodule PR is targeting the main branch. This is something that needs to get worked out between @joeolson42 @dustinswales and us. It may be necessary to have two branches in the submodule -- one for ongoing development by the developers, and another that the ccpp-physics points to. |
Thanks for the heads-up. Submodule management can definitely get tricky when the hashes diverge that much. The two-branch strategy sounds like a solid way to bridge the gap. |
rhaesung
left a comment
There was a problem hiding this comment.
@grantfirl I really appreciate the detailed fixes and clarifications. LGTM and approving!
…pdraft standard names
|
Testing for ufs-community/ufs-weather-model#2810 has completed successfully. This PR can be merged. |
Description of Changes:
See https://docs.google.com/presentation/d/1LJbCrCVGYDvm0UPo8SR4KP6fT1VFocg-xLG399qGQ1w/edit?slide=id.g371ddcb3c06_0_238#slide=id.g371ddcb3c06_0_238 for a complete description.
Main points:
Tests Conducted:
See the linked slides. This was tested in the following ways:
Dependencies:
MYNN SFC Layer #27
Documentation:
TODO
Issue (optional):
None
Contributors (optional):
@grantfirl @VanderleiVargas-NOAA