ai2cm / fv3net

explore the FV3 data for parameterization
MIT License
16 stars 3 forks source link

Postphysics stepper precipitation update behavior can be inconsistent between steppers #2375

Open AnnaKwa opened 11 months ago

AnnaKwa commented 11 months ago
          I don't have an obvious suggestion so approving for now.

My guess is that this had to do with the fact that we previously computed momentum nudging tendencies in postphysics, but then didn't apply them until the next timestep due to the dycore/physics grid issue, so there was an intervening dycore call between computation and application. In that case it really makes sense to use the updated delp to compute the diagnostics, but we no longer do that since Spencer made it possible to set the A-grid winds (all tendencies are applied directly after postphysics computation). Sooo...I guess it is possible that we could merge the compute and apply postphysics steps, where it should be more obvious that the prescriber should produce an array of 0s for net_moistening. But that is a lot of refactoring and only tangential to this PR.

My other suggestion would be to disallow the possibility of the empty net_moistening data array coming from get_diagnostics. Empty data arrays seem like they are likely to cause trouble based on this experience. We could have some common method that steppers call to compute net_moistening that would fill it in with zeros as appropriate. Again outside of this PR though.

Originally posted by @brianhenn in https://github.com/ai2cm/fv3net/issues/2373#issuecomment-1815392926