-
Notifications
You must be signed in to change notification settings - Fork 148
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
cam6_4_050: Implement CCPPized check_energy_chng and check_energy_fix #1180
cam6_4_050: Implement CCPPized check_energy_chng and check_energy_fix #1180
Conversation
…p_or_cv_dycore to snapshot
Fixes #114 * Companion PR in CAM: ESCOMP/CAM#1180 * Companion PR in CAM-SIMA: ESCOMP/CAM-SIMA#316 This PR fixes the following NCAR/atmospheric_physics Github issues: #114 - Implements check_energy_chng. The routine computes total energies using physics and dycore formula and takes in boundary fluxes of vapor, liquid+ice, ice, sensible heat, and writes to log significant energy conservation errors. In order to take in the scheme name and fluxes from the last calling physics scheme (usually zero) a check_energy_zero_fluxes has to be ran before the scheme, then the physics scheme to be checked, then check_energy_chng. - Implements check_energy_fix. The routine computes the heating rate required for global mean total energy conservation which is later applied by apply_heating_rate. Supporting routines include the global mean calculator for total energy (check_energy_gmean) - stored in separate folder to prevent CAM from building it. The global means are very useful for diagnosing model state (as the computed energy numbers include all model state incl. constituents) through a simple one-line printout. check_energy_gmean_diagnostics implements this. At the end of the timestep check_energy_save_teout has to be ran in order to save total energies at the end of the timestep for use in the next timestep. - Diagnostics of intermediate quantities used in check_energy_diagnostics. List all existing files that have been added (A), modified (M), or deleted (D), and describe the changes: ``` - Docs: M doc/ChangeLog - check_energy_chng and supporting routines: A schemes/check_energy/check_energy_chng.F90 A schemes/check_energy/check_energy_chng.meta A schemes/check_energy/check_energy_chng_namelist.xml A schemes/check_energy/check_energy_scaling.F90 A schemes/check_energy/check_energy_scaling.meta A schemes/check_energy/check_energy_zero_fluxes.F90 A schemes/check_energy/check_energy_zero_fluxes.meta - check_energy_fix and supporting routines: A schemes/check_energy/check_energy_fix.F90 A schemes/check_energy/check_energy_fix.meta A schemes/check_energy/check_energy_gmean/check_energy_gmean.F90 A schemes/check_energy/check_energy_gmean/check_energy_gmean.meta A schemes/check_energy/check_energy_save_teout.F90 A schemes/check_energy/check_energy_save_teout.meta - check_energy related diagnostics: A schemes/sima_diagnostics/check_energy_diagnostics.F90 A schemes/sima_diagnostics/check_energy_diagnostics.meta - check_energy_gmean "nstep, te" atm.log output: A schemes/sima_diagnostics/check_energy_gmean_diagnostics.F90 A schemes/sima_diagnostics/check_energy_gmean_diagnostics.meta - test SDF including all functionality: A test/test_suites/suite_check_energy.xml ``` List and Describe any test failures: N/A Summarize any changes to answers: none
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Just had a few requests, almost entirely related to comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great to me now. Thanks @jimmielin!
Thanks @nusbaume and @cacraigucar for the code reviews! I will wait for my turn to make a tag and run the test suite again. If before my turn to make a tag, ESCOMP/atmospheric_physics#160 is incorporated in a atmos_phys tag, I will use that tag and update the subroutine call for |
Closes #1138
Purpose of changes
CAM interfaces have been kept in check_energy.F90 instead of a new module because check_tracers is not yet CCPPized, there are other non-CCPPized routines in module, and for compatibility with FV3 external calls
Related issues
Files changed: