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

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
    • Kyle theorizes it's because of AB + MPDATA
    • Walter theorizes it's because of micro effects on liquid-ice static energy. (This was likely debunked though)
    • Order:
      • Buoyancy
      • Forcing
      • radiation
      • damping
      • ice fall
      • surface fluxes
      • SGS
      • dynamics
      • compute fields at (t+1/2)
      • advection (MPDATA)
      • micro
  • 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.
    • Include the entire SCREAM as a submodule in externals or something
      • This automagically brings in EKAT and other stuff
      • Already has SHOC, and Peter C will want to do this eventually anyway
        • SHOC is BL and SGS
        • Need P3 and SHOC to interact similarly to SCREAM
        • BUT! Let's ignore this for now.
  • SAM will require both CRM-facing and E3SM-facing interfaces at the same time

  • PAM can integrate P3 in true standalone with no E3SM-facing interface.

  • Create a CRM-facing interface layer on top of P3 source code to transform to / from SCREAM "pack" data structures

    • 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
  • Testing the interface for P3

    • We only need to test the interface, not P3, and Matt will create unit tests for P3 --> YAKL data structures
    • Might need a few more unit tests, but it does not, in general, require realistic input / output data for P3
Clone this wiki locally