Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug fixes to 3D diagnostic tendencies; add more tendencies #12

Merged

Conversation

SamuelTrahanNOAA
Copy link
Collaborator

@SamuelTrahanNOAA SamuelTrahanNOAA commented Mar 6, 2020

This is the ufs-weather-model pull request for:

Bug fixes are added so the 3D diagnostic tendency output works properly. There is a new qdiag3d flag to turn on 3D tracer tendencies. Also, there are now tendencies for the model, ccpp, and total. The later two are for debugging the tendency calculations. The timestep_init and timestep_final stages of CCPP are implemented.

Fully tested with gfs v16 beta test suite.

This is still a draft pull request because:

  1. The GSD v0 and GFS v15p2 tendencies are not yet validated.
  2. The other suites need timestep_init and timestep_final sections added or the build process will fail when they're selected.
  3. There is an unresolved question of how to handle the problem of precision.

The Precision Problem

I can say definitively that double precision floating point is not enough to accumulate tendencies across the orders of magnitude typically found in the atmosphere. This was determined by adding a fourth tendency, now disabled in the code. Every time the ccpp or model tendencies were accumulated, that fourth tendency was accumulated by the same amount. In that case, the tendencies of: temperature had a precision of about 0.1 degrees, water vapor mixing ratio of 1e-5, and wind of .1 meters per second. Those are per-3-hour tendencies from a C768 global model. A higher-resolution run would have much larger imprecision due to the larger number of timesteps.

Those can be viewed as the best possible tendency errors.

Right now, the error in the tendencies of CCPP are about 2.5 times the best possible. It is hard to tell whether it is due to further precision issues (eight times as many additions per timestep) or incorrect tendency logic.

The precision issue could be dealt with using quadruple precision (128 bit) floating-point. That is a part of the Fortran 2008 standard, and it is an optional part of the MPI standard. It may be feasible to implement it, but that could cause portability issues.

@SamuelTrahanNOAA SamuelTrahanNOAA marked this pull request as ready for review March 17, 2020 17:19
@DomHeinzeller
Copy link

@llpcarson @grantfirl - for your information, the latest version of the 3D tendencies PR for NOAA-GSD/ufs-weather-model. No need to review this one, just wanted to give you a complete set of PRs.

@SamuelTrahanNOAA SamuelTrahanNOAA changed the title Feature/gsd phys diag3d Bug fixes to 3D diagnostic tendencies; add more tendencies Mar 19, 2020
@llpcarson
Copy link

Sam - could you add a link to the fv3atm (and confirm no ccpp-framework changes) PRs here? Much easier to find everything that way, thanks.

Also, I think the changes to rt.sh are not intended to be merged into the authoritative repo? (local changes only?) Could you recheck those?

Overall, this looks like a good implementation, with the caveats you noted.

@SamuelTrahanNOAA
Copy link
Collaborator Author

Sam - could you add a link to the fv3atm (and confirm no ccpp-framework changes) PRs here? Much easier to find everything that way, thanks.

Done

Also, I think the changes to rt.sh are not intended to be merged into the authoritative repo? (local changes only?) Could you recheck those?

The rt.sh changes should be in a separate PR. For now, I need them for debugging.

Overall, this looks like a good implementation, with the caveats you noted.

@DomHeinzeller DomHeinzeller added the do not merge Something is wrong, do not merge label Apr 20, 2020
DomHeinzeller added a commit that referenced this pull request Apr 22, 2020
Bug fixes to 3D diagnostic tendencies (based on #12)
@DomHeinzeller DomHeinzeller merged commit b3d6e3c into NOAA-GSL:gsd/develop Apr 22, 2020
christinaholtNOAA pushed a commit to christinaholtNOAA/ufs-weather-model that referenced this pull request Sep 3, 2020
…(Jet build fix) (NOAA-GSL#12)

* Move path from /lfs3 to /lfs4 for NCEP libraries

* Update Externals.cfg for changes in UFS_UTILS and EMC_post, and checkout the NCAR fork of ufs-weather-model

* Add CODEOWNERS file and PR template to the repo

* Remove CODEOWNERS file from top level directory (now in .github directory like in regional_workflow)

* Update Externals.cfg hashs for UFS_UTILS, ufs-weather-model, and EMC_post

* Update build_forecast.sh for WCOSS

The modulefile directories for WCOSS do not have Intel on the end for some reason, so this change is needed for the definition of the target variable.

* Add CMAKE_Platform line in build_forecast.sh to correctly build on Jet

* Fix for the duplicate ${target} variable in build_forecast.sh

* Update hash for NCAR fork of ufs-weather-model to include fix for Jet build

* Update hash for NCAR UFS_UTILS fork and for regional_workflow

* Update regional_workflow and NCAR:UFS_UTILS/dtc/develop hashes

* Updated NCAR fork dtc/develop hash

Co-authored-by: BenjaminBlake-NOAA <52074832+BenjaminBlake-NOAA@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do not merge Something is wrong, do not merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants