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

Upgrading to atmos_phys0_07_000 #158

Merged
merged 5 commits into from
Nov 19, 2024
Merged

Upgrading to atmos_phys0_07_000 #158

merged 5 commits into from
Nov 19, 2024

Conversation

jimmielin
Copy link
Member

@jimmielin jimmielin commented Nov 18, 2024

boulderdaze and others added 5 commits October 30, 2024 10:56
)

Originator(s): @mattldawson, @boulderdaze

Summary (include the keyword ['closes', 'fixes', 'resolves'] and issue
number):
- Updates TUV-x wrapper, tests, and configuration data to allow setting
the wavelength grid from the host model. This implementation assumes
that there will be a standard-named variable that defines the edges of
the wavelength grid to use for photolysis rate constant calculations
that is defined by the host model.
- Updates the profile of surface albedos in TUV-x for each column prior
to calculating photolysis rate constants.
- Closes #96 and #123

Describe any changes made to the namelist: N/A

List all files eliminated and why: N/A

List all files added and what they do:
- A       schemes/musica/tuvx/musica_ccpp_tuvx_surface_albedo.F90
- A       schemes/musica/tuvx/musica_ccpp_tuvx_util.F90
- A       schemes/musica/tuvx/musica_ccpp_tuvx_wavelength_grid.F90
- A       test/musica/tuvx/test_tuvx_surface_albedo.F90
- A       test/musica/tuvx/test_tuvx_wavelength_grid.F90

List all existing files that have been modified, and describe the
changes:
- M       schemes/musica/musica_ccpp.F90
- M       schemes/musica/musica_ccpp.meta
- M       schemes/musica/tuvx/musica_ccpp_tuvx.F90
- M       test/musica/micm/test_micm_util.F90
- M       test/musica/test_musica_api.F90
- M       test/musica/tuvx/CMakeLists.txt
- M       test/musica/tuvx/configs/ts1_tsmlt.json
- M       test/musica/tuvx/test_tuvx_height_grid.F90
- M       test/musica/tuvx/test_tuvx_temperature.F90

List any test failures: N/A

Is this a science-changing update? New physics package, algorithm
change, tuning changes, etc? No

---------

Co-authored-by: Matt Dawson <[email protected]>
Originator(s): peverwhee

Summary (include the keyword ['closes', 'fixes', 'resolves'] and issue
number): Modifies existing dynamic constituent handling for the MUSICA
interface to use the new register phase

Describe any changes made to the namelist: N/A

List all files eliminated and why: N/A

List all files added and what they do: N/A

List all existing files that have been modified, and describe the
changes:
(Helpful git command: git diff --name-status
development...<your_branch_name>)

M schemes/musica/musica_ccpp.F90
M schemes/musica/muscia_ccpp.meta

- remove dynamic_constituent_routine from metadata
- add necessary comment header to Fortran
- add metadata for register routine

List any test failures:

Is this a science-changing update? New physics package, algorithm
change, tuning changes, etc? No

---------

Co-authored-by: Courtney Peverley <[email protected]>
Originator(s): @mwaxmonsky 

Summary (include the keyword ['closes', 'fixes', 'resolves'] and issue
number): Sets up the basic infrastructure to start enabling unit
testing. Addresses #82

Describe any changes made to the namelist: N/A

List all files eliminated and why: N/A

List all files added and what they do:
A       .github/workflows/code-coverage.yaml
A       test/unit-test/CMakeLists.txt
A       test/unit-test/include/ccpp_kinds.F90
A       test/unit-test/tests/CMakeLists.txt
A       test/unit-test/tests/utilities/CMakeLists.txt
A       test/unit-test/tests/utilities/test_state_converters.pf
- Initial round of infrastructure to start enabling unit tests.

List all existing files that have been modified, and describe the
changes: N/A
(Helpful git command: `git diff --name-status
development...<your_branch_name>`)

List any test failures: N/A

Is this a science-changing update? New physics package, algorithm
change, tuning changes, etc? No
Adds configurations for Terminator and Chapman chemistry and basic
integration tests.

This includes some data files needed for TUV-x to calculate photolysis
rate constants for these mechanisms, but I wasn't sure if this is the
best place for them. I'm happy to remove the configuration data from
this PR if there is a better place to keep them.

closes #150

Also:
- Adds calculation of photolysis rate constants from TUV-x
- Maps TUV-x rate constants to MICM rate parameters
- Removes some array copying using updated MUSICA functions that accept
pointers to Fortran arrays
- Sets up a gitignore file for the repo
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
@jimmielin jimmielin self-assigned this Nov 18, 2024
Copy link
Collaborator

@nusbaume nusbaume left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks @jimmielin!

@jimmielin jimmielin merged commit e10f811 into main Nov 19, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants