NCAR / ccpp-physics

GFS physics for CCPP
Other
56 stars 144 forks source link

CCPP Framework will no longer support unit "flashes 5 min-1" #1047

Closed peverwhee closed 3 months ago

peverwhee commented 6 months ago

Description

All instances of "flashes 5 min-1" should be changed to "min-1" (as "flashes" is also not a standard unit) before the transition from prebuild to capgen can occur. Any conversion/scaling will need to be handled by the host model and/or post-processing.

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Run the prebuild tests on the feature/capgen branch of NCAR/ccpp-framework

Additional Context

In expanding our framework testing, we discovered that an update to add validation for units has broken the SCM testing because the framework does not recognize "flashes 5 min-1" as a valid unit.

The framework group has decided that, since this is not a standard unit, the framework will not be updated to handle it.

Output

N/A

peverwhee commented 6 months ago

Files that need to be updated (probably not an inclusive list):

mwaxmonsky commented 6 months ago

Some additional details: The code changes that result in this issue can be seen here: https://github.com/mwaxmonsky/ccpp-framework/tree/feature/capgen. The corresponding job log with the error can be found here: https://github.com/mwaxmonsky/ccpp-framework/actions/runs/7292708628/job/19874288589.

This is planned to be pulled into feature/capgen of the ccpp-framework and the current process stops at the first file (GFS_typedefs.meta in this case) and changing the units will result in the script stopping at the next file (maximum_hourly_diagnostics.meta).

SamuelTrahanNOAA commented 5 months ago

There's quite a lot of other files that need to be changed. The UPP, UFS, FV3, SCM, CCPP, and the RRFS scripts all need to be updated for this. You're changing the units of an operational product. We can't break RRFS to fix capgen. I think what needs to happen is:

  1. The variables with new units have a new name.
  2. FV3's GFS_diagnostics.F90 is updated to output the variable under a new name with the new units.
  3. UPP is updated to be able to use either the old or new names.
  4. RRFS parallels and UFS regression tests are updated to use the new names.

All six (seven?) repositories will have to be updated close to the same time to avoid breaking things.

Doing it this way ensures at every step that people will know to update the variable names. In other words, everything breaks or works consistently. You don't end up with units off by a factor of 300 (flashes per second). Instead, you get an error message or a field of missing values.

We need to coordinate this with the people running the RRFS parallel (Ming Hu, Shun Liu) and the UPP code manager (Wen Meng).

grantfirl commented 3 months ago

This is fixed in https://github.com/ufs-community/ccpp-physics/pull/182