INDEPENDENT REFERENCE / 13 NOVEMBER 2026

Does the mountain prediction
agree with CALPUFF?

Agreement is weak. The existing FLEX prediction differs substantially from the independent CALMET + CALPUFF reference. This comparison does not establish predictive accuracy, and CALPUFF is not observed truth. No concentration fitting or agreement-based selection was used.

Same hypothetical seed 42 mountain source, 5 November 06:00 →6 November 06:00 UTC. The source remains 76.2 m AGL, 2 m diameter, 33 m/s, 668.15 K and 3.97323694 g/s SO₂. Background and chemical transformation are disabled. Both models use their own plume-rise and dispersion calculations.

Independent model comparison of maps, all paired values, hourly peaks, wind changes and RMSE
197 predeclared native cells, 24 hours and 5, 319 discrete quadrature points. These are sampled statistics, not full-domain peak statistics. The wind-speed panel compares matching endpoint fields and includes preprocessing/time-representation differences.

Numerical comparison

Hourly pairs4, 728 / all retained
Concentration RMSE1.5877 µg/m³
MAE0.2470 µg/m³
Mean bias · FLEX minus CALPUFF+0.1885 µg/m³
Pearson correlation0.0813
Normalized mean bias+334.0%
Within a factor of two · nonzero in either model7.8% of 4, 012 pairs
Within a factor of two · both positive21.0% of 1, 489 pairs
Both exact zero716 pairs
Only FLEX zero2, 469 pairs
Only CALPUFF zero54 pairs
24 h mean RMSE0.5856 µg/m³
Sampled hourly peak · existing FLEX69.5735 µg/m³ · hour 22–23
Sampled hourly peak · CALPUFF7.9038 µg/m³ · hour 18–19
10 m wind-speed difference RMSE1.0577 m/s

Bias is signed as existing FLEX minus CALPUFF. FAC2 is shown both for 4, 012 pairs nonzero in either model (one-model zeros count as failures), and for 1, 489 both-positive pairs. Both-zero pairs are counted separately. NMB is a relative mean difference between models, not a percentage of forecast accuracy. A large number of low/zero concentrations can make aggregate errors look small while plume location and peaks disagree.

Why this reference?

The BC Air Quality Dispersion Modelling Guideline · July 2022 recommends AERMOD and CALPUFF for detailed assessments. For complex, changing mountain flow, this case uses CALMET + CALPUFF. AERMOD's steady straight-line assumption limits its role here. The guideline accepts version 6; CALPOST 6.221 is used. This 24 h research exercise is not a BC permit assessment.

Actual chain: CALWRF 2.0.3 → CALMET 6.4.0 No-Obs → CALPUFF 6.42 → CALPOST 6.221. CALMET, CALPUFF and CALPOST use the unmodified official Windows executables. CALWRF is compiled from unmodified official source. The official CALPOST hourly and 24 h peak summaries agree with the independently decoded binary concentrations to printed precision.

What was matched—and what differs?

Source location, emission rate, outlet conditions and 24 h UTC period are fixed. CALMET uses the same physical terrain and private JAX WRF-compatible weather origin, then diagnoses its own 500 m wind field, slope/blocking effects and surface mixing. Its 26 h run includes 2 h before source release. The 500 m grid samples existing terrain information; it does not create new terrain detail. CALPUFF's 112.5×112 km transport domain is inscribed in the child weather domain; the original FLEX transport can use the larger parent weather domain. Boundary treatment and possible re-entry therefore also differ.

Receptors were selected before concentration outputs: every eighth native output cell plus the nearest native cells to the five existing virtual receptors. Three Gauss nodes in each horizontal direction and three nodes across 0–20 m approximate a cell/layer mean. CALPUFF point-puff sampling and FLEX's age-dependent bin/CIC output kernel remain different. The five receptor curves below are nearest-cell proxies, not exact point exposure or monitoring stations.

Five fixed receptor-cell comparison time series
Same fixed cell pairs and full 24 hours; no smoothing or output calibration.
Receptor-cell proxyFLEX mean /µg m⁻³CALPUFF mean /µg m⁻³Hourly RMSE /µg m⁻³
R 1 · Outlet location0.512750.357180.80904
R 2 · 5 km north0.425541.53972.4926
R 3 · 10 km north0.299480.146390.38216
R 4 · 15 km NNW4.44180.02885914.992
R 5 · 5 km east0.0742280.0678680.11938

Can an analytical solution provide truth?

A flat, steady, uniform-wind Gaussian plume has an analytical reference. It assumes a fixed effective release height, Gaussian crosswind/vertical spread, a reflecting flat ground and no chemistry or deposition:

This verifies an idealized transport problem, not the present mountain flow. The existing time-varying3D weather, non-flat terrain, thermal rise, deposition and boundary exits do not have that general closed-form solution. No Gaussian curve is presented as truth for this case, and no analytical verification of the complete mountain solver is claimed.

Definitions

Here P is existing FLEX and R is CALPUFF. Native CONC is converted from ng/m³ to µg/m³ by÷1000; CALPUFF g/m³ is multiplied by 10⁶. No standard-temperature ppb conversion, arbitrary factor or background offset is applied.

Limits and unresolved uncertainty

Downloads and provenance

Original result freeze: c223cd826d5a8dced68e829ea5967e05f4f179171d76f56a066d599f38f23883. Third-party executables, source code, manuals and example datasets are retained locally under the CALPUFF licence; they are not redistributed in this site or archive.

Model documentation: CALMET User's Guide; CALPUFF Version 6 User Instructions; official version 6 distribution.