Accretion
- WSM6ColdAccretion
model
atmospheric_dynamics
wsm6
Collection (accretion) process rates between the six water species of the WRF single-moment 6-class microphysics scheme below and above freezing (WSM6; Hong and Lim 2006 appendix A; Lin et al. 1983; Rutledge and Hobbs 1983, 1984), transcribed from the cold-rain block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): accretion of cloud ice by rain (praci), of rain by cloud ice (piacr), of cloud ice by snow (psaci) and by graupel (pgaci) -- all only below 0 C --, of cloud water by snow (psacw) and by graupel (pgacw) and their snow/graupel-weighted combination (paacw), of snow by rain (pracs, below 0 C), of rain by snow (psacr) and by graupel (pgacr), the eliminated snow-by-graupel term (pgacs = 0 since WRF V3.0, when snow and graupel received a common fall speed), and the enhanced melting of snow and graupel above 0 C by the sensible heat of the liquid water they collect (pseml, pgeml). Each collection rate is the geometric sweep-out of one species by another: pi/4 n0 |V_a - V_b| times a size-distribution kernel (collection_kernel_* templates) times the collected mixing ratio, with the collection efficiencies (eacrs = exp(-0.07 (T0 - T)) for ice, 1 for water) and WSM6's empirical reduction min(max(0, q_collector/q_collected), 1)^2 folded into the UNLIMITED rate because they are functions of the state alone. The kernel additionally applies per-process time-step limiters (a sink may not remove more than q/dtcld per sub-step; pseml/pgeml are also floored at zero), exposed separately as <rate>_lim with the sub-step length dtcld as a parameter -- time-step artefacts, not physics (EqWeFiC FORTRAN_BUGS.md note N3); the mass-conservation rescaling applied afterwards is not part of this component. The size distributions, number concentrations and fall speeds are supplied by hydrometeor_slopes.esm mounted as subsystem `sd` (referenced as sd.<name>), exactly as the kernel evaluates them once per sub-step and reuses them here; cloud water qc and the sub-step dtcld are this component's own inputs. Scheme constants come from wsm6_parameters.esm (subsystem `par`), physical constants from lib/wrf_constants.esm (`wrf`). Consumer-supplied inputs are the rewrite-target ops `input_<name>` lowered in the inline tests through a per-test template library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e) (esm-spec 6.6 parameter_overrides admit scalars only). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6WarmRain
model
atmospheric_dynamics
wsm6
Warm-rain process rates of the WRF single-moment 6-class microphysics scheme (WSM6; Hong and Lim 2006, Hong, Dudhia and Chen 2004), transcribed from the warm-rain block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): autoconversion of cloud water to rain praut = qck1 qc^(7/3) above the threshold qc0 (HDC eq. 16), accretion of cloud water by rain pracw = pacrr lambda^-(3+b) qc (rho0/rho)^(1/2) (HL eq. A40), and evaporation/condensation of rain prevp = (rh - 1)(precr1 lambda^-2 + precr2 f_v coeres)/F (HDC eq. 14), all in kg/kg/s as pointwise functions of the layer state on the layer index `lev` (WRF k, layer 1 at the surface; no grid geometry is needed). The raindrop size distribution (the inverse slope lambda^-1 and its powers, the density factor), the transport properties of air (kinematic viscosity, vapor diffusivity, thermal conductivity), the ventilation factor and the rain ventilation moment come from hydrometeor_slopes.esm mounted as subsystem `sd`, which the cold-rain, deposition, melting and sedimentation components mount too, so every process sees one size distribution and one work2 for a given state, as in the kernel; the diffusional-growth denominator F, which needs the saturation state, is computed here (microphysics_templates.esm); the scheme constants (n0r, a, b, r0, N_c, ...) come from wsm6_parameters.esm as subsystem `par` and the physical constants from lib/wrf_constants.esm as subsystem `wrf`. The derived rate coefficients qc0 = (4/3) pi rho_w r0^3 N_c / rho0, qck1 = 0.104 g E / (N_c rho_w)^(1/3) / mu rho0^(4/3), pacrr = pi n0r a Gamma(3+b) E_rc/4, precr1 = 2 pi n0r a_v and precr2 = 2 pi n0r b_v a^(1/2) Gamma(2.5+b/2) are observeds so that they can be checked against the values mp_wsm6_init computes. The saturation state (qsat, rh, xl) is an INPUT rather than computed here: WSM6 evaluates it once at the start of each sub-time step (saturation.esm) and does not refresh it after sedimentation, melting and freezing have changed the temperature, so the rates are evaluated at a temperature that differs from the one behind qsat/rh/xl (EqWeFiC FORTRAN_BUGS.md note N4); a consumer binds saturation.esm's outputs at the state of its choice. The UNLIMITED rates praut, pracw, prevp are the physics; the kernel additionally applies per-process time-step limiters (a sink may not remove more than q/dtcld per sub-step, rain evaporation/condensation may not exceed half the vapor deficit/excess per sub-step), which are exposed separately as praut_lim, pracw_lim, prevp_lim with the sub-step length dtcld as a parameter -- they are time-step artefacts, not physics (EqWeFiC FORTRAN_BUGS.md note N3), and the mass-conservation rescaling the kernel applies afterwards is not part of this component. Consumer-supplied inputs: the column fields qv, qc, qsat, rh, xl here and T, qr, qi, qs, qg, rho, p in `sd` (ice, snow and graupel enter only sd's diagnostics, not the warm-rain rates) are REWRITE-TARGET ops `input_<name>` (esm-spec 4.2 open tier) that the consumer lowers -- in the inline tests through a per-test `expression_template_imports` library (tests/<id>_inputs.esm, extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e)) because esm-spec 6.6 `parameter_overrides` admit scalars only. EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.