SHOC against SHOC+MF (eddy-diffusivity mass flux; Chinita et al. 2023, GMD) in two settings: the standalone (in-and-out mode) driver (shoc_in_and_out) and the full-physics EAM single-column model (SCM), on a 4 dz × 4 dt grid. Companion of the BOMEX CPE page.
Colours on every figure: SHOC SHOC+MF standard SHOC+MF Cee = 1 SHOC+MF standard + inversion brake LES (a reference only).
Does SHOC+MF do well in DYCOMS-RF01? Not yet.
Standalone driver (no radiation): SHOC keeps the deck at every dz and dt; SHOC+MF loses it within about an hour. SHOC keeps the deck as nothing mixes it at cloud top. SHOC+MF loses it because its updrafts mix air across the inversion from the first time step.
Full-physics SCM (interactive longwave): SHOC+MF keeps a full deck through 6 h only on the finest grid (dz = 10 m, dt = 60 and 30 s). Everywhere else the deck breaks up, sooner on coarser grids and with longer time steps. SHOC keeps full cover at every dz and dt, but its deck is too thick and depends strongly on dz and dt: hour 3-4 LWP from 35 to 144 g/m2, against 43 g/m2 in LES A2.
Our reading (likely): In SHOC+MF, the updrafts reach the inversion with too much vertical velocity, so they mix warm, dry air from above the inversion into the cloud. The updraft vertical-velocity equation is currently missing the pressure force that slows rising air down as it approaches a strong inversion. The updrafts' mixing depends strongly on dz and dt.
Settings
SHOC+MF standard (our standard configuration): the mass-flux configuration of the Chinita et al. (2023, GMD) BOMEX runs (mf_ent0 = 0.2, 40 updrafts, mf_a = 1.25, mf_b = 0.5, shoc_length_fac = 1.0), dynamic L0 on, Cee = 1.975 (SHOC's standard value; Cee_const = 1, which in this port multiplies 1.975) and do_wthv_mf on (the updrafts' buoyancy flux also feeds SHOC's TKE; the code default is off).
SHOC+MF Cee = 1: the same as SHOC+MF standard but with Cee = 1 (Cee_const = 0.50625), i.e. less TKE dissipation. A variant we tested; see section 3.
SHOC: standard SHOC (Cee = 1.975, shoc_length_fac = 0.5).
Standalone driver: one column, no radiation, no large-scale subsidence, fixed surface fluxes; 12 h; Fortran engine.
SCM:
DYCOMS-RF01: 6 h with interactive longwave (RRTMG), prescribed subsidence and surface fluxes.
BOMEX: 24 h with the case's prescribed radiative cooling, subsidence and surface fluxes.
Deep convection off; no rain formation in P3 (warm-rain autoconversion switched off, i.e., precip_off = .true.).
SHOC and SHOC+MF were both run on the full 4 dz × 4 dt grid. The SHOC runs other than dz = 20 m, dt = 60 s were made on 2026-09-23, with executables rebuilt after the September 2026 NERSC maintenance (upstream maint-3.0 commit c507cad91d: module paths and library versions). A SHOC+MF run rebuilt the same way is bit-for-bit identical to its September original.
LES (G. Matheou, UConn), a reference only: BOMEX, and DYCOMS-RF01 run A2 (dz = 2.5 m, 4 h, no cloud-fraction profile).
1. DYCOMS-RF01
1a. Standalone driver
The outcome. Maximum cloud fraction, first 4 h, at dz = 20 m, dt = 60 s and dz = 100 m, dt = 300 s. SHOC keeps full cover; SHOC+MF loses the deck within about an hour. The same happens at every dz and dt (grids below).The mechanism. Heat flux w'θl' over 12 h, SHOC (top) and SHOC+MF standard (bottom), dt = 60 s, one column per dz. Red = heat carried up (from the heated surface); blue = heat carried down (warm inversion air mixed into the cloud). Lines = cloud base and top, coloured by cloud fraction. SHOC has almost no flux at cloud top for about the first 5 h, and after that only short bursts, while its deck survives; SHOC+MF mixes across the inversion from the start and its deck is gone within about an hour.
Why SHOC keeps the deck in the driver and SHOC+MF does not
Longwave cooling at cloud top is not needed for the deck to survive a few hours. In well-resolved LES of this case without radiation, but with large-scale subsidence, which our driver lacks (Matheou and Teixeira 2019), surface fluxes and wind shear keep the boundary layer turbulent, and the deck stays in place for the 4 h simulated, although it thins.
SHOC computes its fluxes from local turbulence. It makes almost no turbulence near cloud top: the fluxes there stay near zero for about 5 h while the surface keeps moistening the layer. When turbulence from the surface finally reaches cloud top, the deck is already thicker and survives the mixing. SHOC keeps the deck because nothing mixes it, not because it gets the balance right.
SHOC+MF updrafts start from the surface fluxes and reach the inversion in the first time step. Where the updrafts reach the inversion, they mix warm, dry air from above it into the top of the cloud, and the cloud layer warms and dries. The flux this produces is several times the surface heat flux, and the deck evaporates within about an hour. The inversion rises as it is mixed away from below.
The driver is still a useful test. It lacks cloud-top longwave cooling and subsidence, but in LES without radiation (Matheou and Teixeira 2019) the deck stays in place for the 4 h simulated, so a well-behaved scheme should keep it too, at least for a few hours. SHOC keeps the deck but thickens it and has almost no mixing at cloud top; SHOC+MF mixes so strongly that the deck is gone within about an hour.
What it shows: SHOC keeps full cover through 6 h at every dz and dt, but the deck is too thick and depends on dz and dt. Its hour 3-4 LWP is 83-144 g/m2 at dz ≤ 50 m and 35-47 g/m2 at dz = 100 m (LES A2: 43 g/m2); at dz ≤ 50 m it is larger with longer time steps, and at dt = 300 s on the finer grids the deck reaches down to 150-310 m. At dz = 20 m, dt = 60 s, SHOC mixes at the inversion after about an hour (curtains below). SHOC+MF standard keeps full cover through 6 h only at dz = 10 m with dt ≤ 60 s. Elsewhere the deck breaks up, and the coarser the grid or the longer the time step, the sooner: from within about an hour at dz = 100 m to about 4 h at dz = 20 m with dt ≤ 60 s. With Cee = 1, SHOC+MF keeps full cover through 6 h over a wider part of the grid (dz ≤ 50 m with dt ≤ 60 s), but the result still depends on dz and dt.
Cloud fraction, hours 5-6, all dz × dt (x-axis 0-1). Pink = SHOC+MF standard; red = SHOC; blue and green = the variants of section 3.
Standalone driver, hours 4-6, all dz × dt: cloud fraction | cloud water (with LES) | profiles at dz = 20 m, dt = 60 s. SHOC has far too much cloud, peaking in the middle to upper cloud layer. SHOC+MF standard has much less cloud, closer to the LES in amount, with its maximum near cloud base at dz ≥ 50 m and a roughly flat profile at dz ≤ 20 m. Parameter file: SHOC+MF standard.
SCM, hours 4-6, all dz × dt: cloud fraction | cloud water (with LES) | profiles at dz = 20 m, dt = 60 s. SHOC again has far too much cloud at every dz and dt but one: maximum cloud fraction 0.18-0.43 (0.08 at dz = 10 m, dt = 300 s), against 0.063 in the LES, peaking in the upper half of the cloud layer (760-1075 m), and more cloud on coarser grids. SHOC+MF standard has less cloud than the LES; its maximum sits near cloud base at dz ≥ 50 m, as in the LES, and the profile is flatter at dz ≤ 20 m.
Cee = 1 brings the cloud amount up, closer to the LES (and top-heavy at dz = 10 m in the standalone driver).
3. Developer variants (for the SHOC+MF work)
Two variants of the standard configuration, drawn in the same figures above: Cee = 1 is the blue curve and the inversion brake the green curve in the DYCOMS and BOMEX grids of sections 1 and 2.
Cee = 1 (Cee_const = 0.50625): less TKE dissipation. It keeps the DYCOMS deck over a wider part of the grid (full cover through 6 h at dz ≤ 50 m with dt ≤ 60 s in the SCM) and brings BOMEX cloud amount up, closer to the LES. It does not remove the resolution sensitivity, and it makes standalone BOMEX top-heavy at dz = 10 m.
Inversion brake (SCM only; sandbox code, not on the shared branch): an extra drag on the updraft vertical velocity near the inversion (Wu et al. 2020, z00 = 100 m), with Cee = 1.975. It keeps the DYCOMS deck at dz ≤ 20 m for every dt, but at dt = 300 s the deck extends much deeper (cloud base near 250 m), and it does not help at dz ≥ 50 m. In BOMEX it adds a second cloud maximum near 1000-1150 m at dz ≤ 20 m (top-heavy), worst at long time steps.
Data
Standalone parameter files and analysis scripts: mr_scm in_and_out_scripts (bomex/shoc_params/, dzXdt_sweep_postprocessing_py_scripts/)
SCM case directories (Perlmutter scratch): /pscratch/sd/m/mchinita/AMR/SCM_runs_shocmf_fullphys/
BOMEX LES reference files: /global/cfs/cdirs/m4359/mchinita/les_reference/BOMEX_Matheou/