Saturation
- WSM6Saturation
model
atmospheric_dynamics
wsm6
Thermodynamic state of a column as the WSM6 microphysics scheme evaluates it once per sub-time step (phys/physics_mmm/mp_wsm6.F90, the inlined fpvs block and the cpmcal/xlcal statement functions of mp_wsm6_run): saturation vapor pressure and mixing ratio over water and over ice from the integrated Clausius-Clapeyron relation with temperature-linear latent heats (lib/wrf_thermo.esm saturation_vapor_pressure_fpvs), the relative humidities, the latent heat of vaporization and the moist heat capacity. Layer index `lev` (WRF k, layer 1 at the surface); all fields are pointwise functions of the layer state, so no grid geometry is needed. The ice formula is used only below the triple point, above it the ice saturation equals the water saturation (the Fortran branch). The vapor pressure is capped at es_cap p and the saturation mixing ratio and relative humidity are floored at qmin, exactly as the kernel does. This model is a separate component from the process rates (warm_rain.esm) because WSM6 computes it from the temperature and vapor at the START of the sub-step and does not update it after sedimentation, melting and freezing have changed the temperature (EqWeFiC FORTRAN_BUGS.md note N4); the process-rate components therefore take qsat, rh and xl as inputs so that a consumer can bind either this model's outputs or, to reproduce the kernel, its start-of-step values. Consumer-supplied inputs: the column fields T (temperature), qv (vapor mixing ratio) and p (pressure) 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.