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 diagnostic capability #29

Open
gold2718 opened this issue Mar 19, 2020 · 3 comments
Open

Implement diagnostic capability #29

gold2718 opened this issue Mar 19, 2020 · 3 comments
Labels
enhancement New feature or request

Comments

@gold2718
Copy link
Collaborator

Implement diagnostic (history) capability in CAM. This capability requires a re-implementation of CAM's history infrastructure because physics, the source of many diagnostic output calls, is now CCPP-compliant and cannot require any CAM-specific calls. This task requires several steps:

  • Split CAM history configuration, restart, and output from output processing (i.e., outfld)
  • Implement output processing functionality as independent library (possibly as part of CCPP Framework)
  • Implement configuration (i.e., addfld equivalent) of diagnostic variables in CCPP metadata
  • Implement new build-time infrastructure to turn CCPP diagnostic information into code and data to be able to process namelist input and set up the necessary buffers.
@gold2718 gold2718 added the enhancement New feature or request label Mar 19, 2020
@gold2718 gold2718 self-assigned this Mar 19, 2020
@gold2718
Copy link
Collaborator Author

Another consideration (but not part of this issue) is the desire to maintain a capability to configure and output data from within a CCPP scheme without having to bring the data all the way to the interface.

@nusbaume
Copy link
Collaborator

Just adding a note here that the CCPP-ized version of qneg cannot be brought back into CAM until this diagnostics/history functionality has been implemented. This is because the "run" phase of qneg has outfld calls that are currently commented out in the CCPP-ized version, and thus bringing that directly back into CAM would result in a loss of CAM functionality.

However, once the capability to provide diagnostics output has been enabled then at least the qneg_run subroutine should be brought back into CAM, in order to avoid code duplication.

@nusbaume
Copy link
Collaborator

Adding another note to indicate that once history has a defined fillvalue parameter that it should be used in atm_comp_nuopc.F90 instead of the value currently set there locally.

peverwhee added a commit that referenced this issue Oct 25, 2024
Tag name (required for release branches):
Originator(s): peverwhee, gold2718

Summary (include the keyword ['closes', 'fixes', 'resolves'] and issue
number):
- Implement instantaneous history output in CAM-SIMA using the new
modular history code (addresses #29)
- Update the standard name `inverse_exner_function_wrt_surface_pressure`
to `reciprocal_of_dimensionless_exner_function_wrt_surface_air_pressure`

Describe any changes made to build system:
A cime_config/hist_config.py: New namelist parsing for history
configurations
M   cime_config/buildlib: Add new history directories
M   cime_config/buildnml: Incorporate hist_config.py
M   cime_config/atm_in_paramgen: Incorporate hist_config.py

Describe any changes made to the namelist: Can now use CAM-SIMA history
namelist - see https://escomp.github.io/CAM-SIMA-docs/usage/history/

List any changes to the defaults for the input datasets (e.g. boundary
datasets): none

List all files eliminated and why:
D   src/control/filenames.F90
-renamed to src/utils/cam_filenames.F90

List all files added and what they do:
A   src/control/cam_physics_control.F90
-split cam_control_mod to avoid circular dependency
A   src/utils/cam_filenames.F90
-renamed from control/filenames.F90
A   src/history/cam_hist_file.F90
A   src/history/cam_history.F90
A   src/history/cam_history_support.F90
-core CAM-SIMA history infrastructure
A   test/unit/test_hist_config.py
-test hist_config.py (namelist parsing)

List all existing files that have been modified, and describe the
changes:
(Helpful git command: `git diff --name-status
development...<your_branch_name>`)
M   src/control/cam_comp.F90
-add calls to new history infrastructure
M   src/control/cam_control_mod.F90
-split to into cam_control_mod and cam_physics_control
M   src/control/runtime_opts.F90
-add call to history namelist reader
M   src/control/cam_initfiles.F90
-update use statement
M   src/cpl/nuopc/atm_comp_nuopc.F90
-add rstwr and nlend to cam_timestep_final calls, add do_history_write
logical
M   src/data/registry.xml
M   src/dynamics/se/dyn_comp.F90
M   src/dynamics/mpas/dyn_comp.F90
-update exner and vertically_integrated_* standard names
M   src/dynamics/utils/hycoef.F90
-enable history coordinates
M   src/utils/cam_abortutils.F90
-fix bug in cam_register_open_file
M   src/utils/cam_field_read.F90
-code cleanup
M   src/utils/cam_grid_support.F90
-update to enable split history files
M   src/utils/cam_pio_utils.F90
-only register created and opened files if we're writing to them
M   src/utils/cam_time_coord.F90
M   src/utils/time_manager.F90
-update use statement
M   src/utils/string_utils.F90
-add functions date2yyyymmdd and sec2hms
M   test/run_unit_tests.sh
-add new hist_config test

If there are new failures (compare to the
`test/existing-test-failures.txt` file),
have them OK'd by the gatekeeper, note them here, and add them to the
file.
If there are baseline differences, include the test and the reason for
the
diff. What is the nature of the change? Roundoff?

derecho/intel/aux_sima:

derecho/gnu/aux_sima:

If this changes climate describe any run(s) done to evaluate the new
climate in enough detail that it(they) could be reproduced:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: To Do
Development

No branches or pull requests

2 participants