ESCOMP / ESCOMP/atmospheric_physics

CCPP-ize PUMAS

Open
#118 0 comments 1 reaction 1 assignee Claimed by @nusbaume View on GitHub
enhancement
Dominant language
Fortran
Stars
12
Forks
38
Avg merge
11h 16m
Merged PRs (30d)
5

Description

This issue is here to help track the CCPP-ization of the current CAM interface to the PUMAS microphysics package, with the eventual goal of having a version of PUMAS runnable in CAM-SIMA.

Also notifying @Katetc and @andrewgettelman that I'll start work on this soon, and so may have some questions for them at some point.

--------------------------------------------

The following is a list of needed tasks to assist with tracking progress on PUMAS CCPP-ization:

Tasks needed explicitly in the [ESCOMP/PUMAS](https://github.com/ESCOMP/PUMAS) repo:

- [x] Remove all uses of CESM-specific source code from internal PUMAS routines (except the `qsat_X` routines, which will need to be a dependency).
- [x] Create a CCPP cap for the main PUMAS routine (and ensure it works in CAM).
- [ ] Create Metadata files for the PUMAS CCPP cap and the "proc_rates_type" DDT.
- [ ] Create Github Action which validates the metadata files whenever a PR is made.
- [ ] Add PUMAS submodule to NCAR/ccpp-physics repo, along with needed dependencies.

Tasks needed for a complete PUMAS interstitial scheme that lives in [NCAR/ccpp-physics](https://github.com/NCAR/ccpp-physics):

- [ ] Register all constituents needed by PUMAS.
- [ ] Subset variables into expected microphysics dimensions (e.g. subcolumns, when enabled).
- [ ] Convert microphysics-dimensioned variables back into regular-dimensioned variables.
- [ ] Apply any associated tendencies to their states, possibly in several subcycling steps.
- [ ] Calculate (and apply if necessary) the "final", post-subcycle microphysics tendencies.
- [ ] Calculate size distribution parameters and Liquid Water Path needed for diagnostics and radiation (i.e. the `size_dist_param_X` subroutine calls in CAM)
- [ ] Calculate remaining diagnostic variables, such as precipitation efficiency.
- [ ] Output diagnostics using CAM-SIMA-specific method (non-portable)

Tasks needed to fully-implement a CCPP-ized PUMAS in [ESCOMP/CAM-SIMA](https://github.com/ESCOMP/CAM-SIMA) :

- [ ] Create a CAM-SIMA-specific `pumas_namelist.xml` file to support PUMAS namelist variables in CAM-SIMA.
- [ ] Develop the correct directory structure between PUMAS, ccpp-physics, atmospheric_physics, and CAM-SIMA, which will likely require at least small modifications in all repos.
- [ ] Create a PUMAS SDF needed to properly test PUMAS in CAM-SIMA and implement it in the CAM7 SDF. This will likely include the use of the "subcyle" CCPP-framework feature.

Any additional tasks that are discovered during the development process will be added to this list accordingly.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.