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

Reorganize ozone physics into CCPP phases #75

Merged
merged 119 commits into from
Nov 2, 2023

Conversation

dustinswales
Copy link
Collaborator

@dustinswales dustinswales commented May 25, 2023

This PR contains a major reorganization of the NRL (2015) ozone physics parameterization. The major changes include:
Updated on 09/28/2023

  • Move data used by the scheme from the HEAP (shared module memory within the scheme) to Interstitials that are provided by the host (setup in GFS_typedefs.F90:control_initialize()). This allows applications to use multiple ccpp suites within the same executable. This partially addresses HEAP memory in physics schemes #74
  • Update and move ozone schemes into single module, module_ozphys.F90, and make all ozone procedures type-bound
  • Make diagnostic calculations optional within scheme.
  • Move GFS specific calculations (e.g. diagnostics) to own scheme.

With these changes, the ozone physics is"stateless" in memory, host-model agnostic, and self-contained within a single module.
Going forward, h2o photolysis, aerosol climatology, and the CCN/IN data schemes are nearly identical, and could be refactored in the same way.

dustinswales and others added 30 commits August 11, 2022 20:56
@dustinswales
Copy link
Collaborator Author

@grantfirl @Qingfu-Liu @mkavulich
Okay, this one is finally ready to go!

@grantfirl
Copy link
Collaborator

@grantfirl @Qingfu-Liu @mkavulich Okay, this one is finally ready to go!

Could you update these PRs and change the superrepo PRs from draft to PR? Also, have you run RTs on Hera or would you like me to?

@dustinswales
Copy link
Collaborator Author

@grantfirl I've run the RTs on Hera. All tests past except one, in which one field disagrees. The total photochemical tendency (h2o+o3) differs, but all the individual o3 photochemical tendencies agree, and there's no change to the h2o scheme, so something is not getting accumulated correctly. I will look into this more later today.

@dustinswales
Copy link
Collaborator Author

@grantfirl RTs on Hera Intel pass and everything is up-to-date.

@grantfirl grantfirl self-requested a review October 18, 2023 19:06
@jkbk2004
Copy link

jkbk2004 commented Nov 2, 2023

@grantfirl @mkavulich @Qingfu-Liu All tests are done at ufs-community/ufs-weather-model#1851. Please, go ahead to merge this pr.

@dustinswales dustinswales merged commit 3855dcc into ufs-community:ufs/dev Nov 2, 2023
3 checks passed
@dustinswales dustinswales deleted the feature_reorg_ozphys branch November 2, 2023 13:11
@dustinswales
Copy link
Collaborator Author

@jkbk2004 Merged

@climbfuji
Copy link

I just came across this and wanted to note that the use if optional and pointer in the ozphys run routines is not conforming with the CCPP requirements. The active attribute in the host model metadata, or better the flag that is associated with it, must be used to access these 3d diagnostic arrays in the ozone schemes. I probably have to update the code that was merged here for the capgen transition work.

drnimbusrain pushed a commit to noaa-oar-arl/ccpp-physics that referenced this pull request Mar 28, 2024
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.

7 participants