Skip to content

CCPP Framework Meeting Minutes 2020 06 04

Dom Heinzeller edited this page Jun 4, 2020 · 2 revisions

Agenda

  • blocked data structures
  • active attribute, optional arguments

Blocked data structures

  • ccpp_prebuild.py now has the capability to pass blocked data structures to _init and _finalize routines
  • this works with uniform and non-uniform block sizes, as well as with unit conversions
  • this code is now in NOAA-GSD's gsd/develop branches and will come to EMC develop / NCAR master mid June(-ish)
  • example from mp_thompson_init (without unit conversion)
        allocate(tmpvar14(1:GFS_Control%ncols,1:GFS_Control%levs))
        ib = 1
        do nb=1,GFS_Control%nblks
          tmpvar14(ib:ib+GFS_Control%blksz(nb)-1,:) = GFS_Data(nb)%Statein%tgrs
          ib = ib+GFS_Control%blksz(nb)
        end do
  • having this capability allows us to introduce the timestep_init and timestep_finalize phases, move the code from the GFS_time_vary_*_run routines to the _timestep_init routines and get rid of the GFS DDTs in there
  • ccpp_prebuild.py uses workarounds (called "legacy extensions") to deal with inconsistent use of horizontal_dimension and horizontal_loop_extent in the different phases --> needs to be cleaned up

... WORK IN PROGRESS ...

Clone this wiki locally