Skip to content

Complete CCPPization of cloud fraction for two-moment microphys (cldfrc2m)#1522

Open
jimmielin wants to merge 2 commits intoESCOMP:cam_developmentfrom
jimmielin:hplin/cldfrc2m
Open

Complete CCPPization of cloud fraction for two-moment microphys (cldfrc2m)#1522
jimmielin wants to merge 2 commits intoESCOMP:cam_developmentfrom
jimmielin:hplin/cldfrc2m

Conversation

@jimmielin
Copy link
Copy Markdown
Member

Companion PR: ESCOMP/atmospheric_physics#380

Changes are all b4b

Needs the ccpp_constituent_properties_ptr_t shim update in CAM so if UW PBL goes in first this won't need it, otherwise this will need to bring that file change in

Purpose of changes (include the issue number and title text for each relevant GitHub issue):

  • Closes Convert cldfrc2m.F90 to CCPP (mostly namelist read), shim for public USEs in CAM, move subroutines to atmos_phys #1521 - Move two-moment cloud fraction scheme (cldfrc2m) to atmos_phys as compute_cloud_fraction_two_moment.
  • cldfrc2m is used broadly across CAM physics (cldwat2m_macro, clubb_intr, CARMA cirrus models) and its namelist parameters are pulled in via USE statements in many places. Moving the computational routines to atmos_phys and making cldfrc2m a thin CAM shim for namelist I/O and parameter distribution facilitates CCPP port of CLUBB, PUMAS, etc. as these namelist parameters will cleanly flow via standard names
  • Added keyword arguments calling into cldfrc for rh threshold etc. for clarity

Describe any changes made to build system: N/A

Describe any changes made to the namelist: N/A

List any changes to the defaults for the boundary datasets: N/A

Describe any substantial timing or memory changes: N/A

Code reviewed by:

List all files eliminated: N/A

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

List all existing files that have been modified, and describe the changes:

M       src/physics/cam/cldfrc2m.F90
  - Move computational subroutines (astG_PDF, astG_RHU, astG_PDF_single,
    astG_RHU_single, aist_single, aist_vector) to atmos_phys
    compute_cloud_fraction_two_moment.
  - Keep readnl, init, and public namelist-derived constants
    (rhmini_const, rhmaxi_const, rhminis_const, rhmaxis_const,
    rhminl_const, rhminl_adj_land_const, rhminh_const).
  - init now calls compute_cloud_fraction_two_moment_init and
    cldfrc_getparams to distribute parameters.
  - Newly exposes rhminl_const, rhminl_adj_land_const, rhminh_const
    (previously internal) so callers can pass them in explicitly.

M       src/physics/cam/cldwat2m_macro.F90
  - USE compute_cloud_fraction_two_moment directly for subroutines;
    USE cldfrc2m shim only for rh constants.

M       src/physics/cam/clubb_intr.F90
  - USE compute_cloud_fraction_two_moment for aist_vector;
    USE cldfrc2m shim for rh constants including newly-exposed rhminl_const,
    rhminl_adj_land_const, rhminh_const.

M       src/physics/carma/models/cirrus/carma_cloudfraction.F90
M       src/physics/carma/models/cirrus_dust/carma_cloudfraction.F90
  - USE compute_cloud_fraction_two_moment for subroutines;
    USE cldfrc2m shim for rh constants.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant