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

Implement CCPPized check_energy_chng and check_energy_fix #145

Merged
merged 42 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
f4aa873
Initial commit
jimmielin Sep 5, 2024
807f10d
Initial CCPP-ization and cleanup of check_energy_chng with support ut…
jimmielin Sep 6, 2024
cb77ae8
Cleanup arguments; fix compile issues; remove commented out CAM shim …
jimmielin Sep 10, 2024
5c67d4b
Stub for zero fluxes before going into check_energy_chng
jimmielin Sep 12, 2024
dd1a813
Add stub to zero fluxes; test SDF
jimmielin Sep 12, 2024
b54964c
Update placeholders for undecided standard names
jimmielin Sep 12, 2024
e30c70c
Remove horizontal_loop_extent from timestep_init phase as disallowed
jimmielin Sep 12, 2024
29cbd59
Update check_energy in preparation for gmean/fix
jimmielin Sep 16, 2024
35449cc
SDF for check_energy; implement gmean (& replacement for get_integral…
jimmielin Sep 25, 2024
65a750c
Update standard names to accepted variants; debug printout handling
jimmielin Oct 3, 2024
bc53062
Rebase to new directory structure
jimmielin Oct 3, 2024
faacfb7
Add debug diagnostics for check_energy
jimmielin Oct 4, 2024
cb922ee
Fix compile issues
jimmielin Oct 7, 2024
cdb5b5e
Move check_energy_gmean to subdir to avoid CAM from building it
jimmielin Oct 10, 2024
5330738
Add test SDF with teout assignment so it can run standalone; remove o…
jimmielin Oct 15, 2024
2b6c481
Update tw_ini, tw_cur standard names
jimmielin Oct 15, 2024
f548402
Fix vertical_interface_dimension for pint
jimmielin Oct 15, 2024
b30f55f
Fix build issues
jimmielin Oct 15, 2024
32929bf
Update assigned standard names
jimmielin Oct 15, 2024
8aafb77
Update check_energy namelist
jimmielin Oct 15, 2024
3eacca2
Add note about eventual removal of dyn_tests_utils
jimmielin Oct 21, 2024
11be7fd
Update check_energy from vcoord to energy_formula
jimmielin Oct 22, 2024
c925c0b
Move energy formula definitions to cam_thermo_formula
jimmielin Oct 23, 2024
952ebdd
Split out gmean_diagnostics; cleanup
jimmielin Oct 25, 2024
84371bd
Update doc/NamesNotInDictionary.txt
jimmielin Oct 25, 2024
44d724d
Fix len=* for dummy argument in check_energy_chng_run
jimmielin Oct 28, 2024
87a4541
Add adiabatic scheme; check_energy calls to CAM7; check_energy_fix co…
jimmielin Nov 4, 2024
003ece7
Add dycore_energy_consistency_adjust scheme
jimmielin Nov 5, 2024
56808e1
Fix build error
jimmielin Nov 8, 2024
e87c44d
Fix dycore_energy_consistency_adjust.meta ncol dimensions
jimmielin Nov 8, 2024
27238bc
Address code review comments
jimmielin Nov 13, 2024
7b46000
Update standard names
jimmielin Nov 13, 2024
1003f81
Fix build error
jimmielin Nov 13, 2024
a53ff9b
Update standard names from review comments
jimmielin Nov 14, 2024
5e52537
Change rga to gravit
jimmielin Nov 14, 2024
cef429f
Add namelist option to control gmean diagnostic; reformat gmean diagn…
jimmielin Nov 14, 2024
7b188e3
Address review comments
jimmielin Nov 15, 2024
419bc0e
As suggested use tendencies for dycore_energy_consistency_adjust
jimmielin Nov 15, 2024
b1e2c2a
Remove unused arguments; update cam7 suite
jimmielin Nov 15, 2024
3ae094e
Update ChangeLog with tag atmos_phys0_07_000
jimmielin Nov 18, 2024
387567c
Merge branch 'development' into hplin/check_energy
jimmielin Nov 18, 2024
7506b05
Update NamesNotInDictionary before merge
jimmielin Nov 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,77 @@
===============================================================

Tag name:
Originator(s): jimmielin
Date: October 25, 2024
One-line Summary: Implement CCPPized check_energy_chng and check_energy_fix
Github PR URL:

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.

- Implements dycore_energy_consistency_adjust which adjusts temperature and temperature tendencies for the MPAS and SE dynamical cores.

Code reviewed by:

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

- dycore_energy_consistency_adjust and applications in simple physics:
A schemes/check_energy/dycore_energy_consistency_adjust.F90
A schemes/check_energy/dycore_energy_consistency_adjust.meta
M suites/suite_held_suarez_1994.xml
M suites/suite_kessler.xml

- add check_energy to SDFs:
M suites/suite_cam7.xml

- adiabatic SDF:
A suites/suite_adiabatic.xml


List and Describe any test failures: N/A

Summarize any changes to answers: none

===============================================================

Tag name:
Originator(s): jimmielin
Date: October 17, 2024
Expand Down
Loading