Skip to content
Matt Norman edited this page Apr 16, 2021 · 17 revisions

Contents

People working on this: Kyle P., Walter H., Xingqiu Y., Isaac L., Matt N.

P3 code location: https://github.com/E3SM-Project/scream/tree/master/components/scream/src/physics/p3

Plan

Steps for integration into samxx and PAM:

  • Identify why ice_fall is performed before micro_proc in sam (Kyle will talk to Mikhial O.)

    • Walter is reaching out to Marat and Peter Bl. about this
    • For now, we can just assume it doesn't matter, and ifdef for SAM microphysics only
  • Find the ideal way to get P3 source code into E3SM

    • Keep Peter Caldwell and Jim Foucar, Jeff Johnson (EKAT expert among other things), and Rob Jacob in the loop for this
      • The main problem with this is multiple copies of YAKL and Kokkos, etc.
      • We would probably have to use our own CMake rather than SCREAM's. Not sure how hard that would be.
    • It would be nice to include scream as a submodule, but...
      • This automatically brings in EKAT and other stuff
      • Already has SHOC, and Peter C will want to do this eventually anyway
      • The scream repo has other major components in it already, and there does not appear to be a standalone scream or P3 repo.
    • For now, we just need to copy files manually and create our own standalone repo, maybe.
  • SAM will require both CRM-facing and E3SM-facing interfaces at the same time

    • Walter will own E3SM-facing samxx interface for P3 stuff for MMF forcing
    • Xingqiu and Kyle will own P3-facing interface for SAM++
    • Example in Marat's Fortran SAM already with Fortran P3
      • We could potentially just GPU-port to YAKL the Fortran interface code...
      • Really helps us with thermodynamics being done correctly
  • PAM can integrate P3 in true standalone with no E3SM-facing interface

    • Isaac and Matt will own P3-facing interface for PAM
  • Create unit tests for interfacing SCREAM packs with YAKL Arrays for CRM code

    • Matt and Isaac will own with Kyle's help, the creation of unit tests to interface with SPACKs
    • This will differ between SAM and PAM with potential common files as well
  • Might have inconsistency in current interface where number concentration can have non-zero tendency while mass is zero

    • {Mass , number} --> particle size for sedimentation according to some distribution
    • We're going to ignore this for now, but will look at it later (Kyle and Walter)

Miscellaneous notes