| Handbook on Atmospheric Diffusion, Table 4.5 | The spread of a plume across the wind and upward grows with distance, in a form that depends on the stability class. The open-country rows hold from 100 m to 10 km. | sigmaY src/kernel/aermod.ts | Proved AE-02 Tested AE-07 |
| SCREEN3 User’s Guide, Equations 5 and 7 | The buoyancy flux is g × v × d² × (Ts − Ta) / (4 Ts) and the momentum flux is (Ta / Ts) × v² × (d / 2)², for a gas at speed v and temperature Ts leaving a stack of diameter d into air at Ta. | fluxes src/kernel/aermod.ts | Tested AE-08 |
| AERMOD Model Formulation, Equation 91 | The rise of the plume is the cube root of 3 Fm x / (b² u²) + 3 Fb x² / (2 b² u³), with the momentum flux Fm, the buoyancy flux Fb, the distance x, the wind at the stack u and the entrainment parameter b = 0.6. | riseAt src/kernel/aermod.ts | Tested AE-08 |
| Handbook on Atmospheric Diffusion, Equations 2.19 and 2.25 | The rise stops at the final rise of Briggs. In the stable classes E and F that is 2.6 × (F / (u s))^(1/3), and in the others 1.54 × (F / (u u*²))^0.6 × h^0.4, with the stability parameter s, the friction velocity u* and the height h of the stack. | plumeSetup src/kernel/aermod.ts | Tested AE-08 |
| Handbook on Atmospheric Diffusion, Equation 4.9 and Table 4.6 | The wind at the height of the stack is the wind at ten metres times (height / 10) to a power that depends on the class, from 0.07 in A and B to 0.55 in F. It stops growing at 200 m and is never below 0.5 m/s. | windAtHeight src/kernel/aermod.ts | Tested AE-09 |
| Handbook on Atmospheric Diffusion, Equation 4.1 | At the ground, the plume and its image in the ground add to Q / (π u σy σz) × exp(−y² / 2σy²) × exp(−H² / 2σz²), with the emission Q, the height H of the middle of the plume and the distance y across the wind. | plumeAt src/kernel/aermod.ts | Tested AE-10 |
| SCREEN3 User’s Guide, Equation 8 | Rise spreads the plume as well as lifting it. Each spread has the rise divided by 3.5 added to it in squares. Equation 88 of the AERMOD formulation has 0.4 over the square root of 2 where this has 1 over 3.5, which is about one per cent less. | plumeAt src/kernel/aermod.ts | Tested AE-08 Tested AE-10 |
| Rule of this product, the highest value | The highest concentration at the ground is the highest of 400 distances at an equal ratio from 100 m to 10 km, refined between the neighbours of the best, and the figure says when it falls at the end of the range. | plume src/kernel/aermod.ts | Tested AE-11 |
| Handbook on Atmospheric Diffusion, Table 4.1 | By day the class follows the wind and the strength of the sun, from A in strong sun and a light wind toward D as the wind rises or the sun weakens. At night it follows the wind and the cloud, from F in a clear sky and a light wind toward D as the wind rises. | weather src/kernel/aermod.ts | Tested AE-12 |
| Rule of this product, the calendar | A leap year has 366 days. The quarters of an ordinary year have 90, 91, 92 and 92 days, and the first of a leap year has one more. | quarterOf src/kernel/aermod.ts | Tested AE-13 |
| 40 CFR Part 50, Appendices N and T, Table 1 | The highest day of a year that stands for the 98th percentile, or the 99th, is read from a table by the number of days with a valid value. The rank is the nearest above the percentile, so it is the number of days divided by 50 or by 100, rounded up. | rankFor src/kernel/aermod.ts | Proved AE-01 Tested AE-14 |
| 40 CFR Part 50, Appendix N, the annual mean | The annual mean is the mean of the four quarterly means, so a quarter counts the same however many days it has. | annualMean src/kernel/aermod.ts | Tested AE-14 |
| 40 CFR Part 50, Appendices N and T, the values that a monitor keeps | An hour is cut off at a tenth of a unit. A day is the mean of its hours, cut off at a tenth again, or for sulfur dioxide the highest hour. A monitor therefore reads a day below the true value and never above it. | dayAsMonitor src/kernel/aermod.ts | Proved AE-03 Tested AE-18 |
| 40 CFR Part 50, Appendices N and T, the design value | A design value is the mean of three yearly values, rounded half up to the places of the standard: whole micrograms for the 24-hour PM2.5 standard and for sulfur dioxide, and a tenth for the annual PM2.5 standard. | roundExact src/kernel/aermod.ts | Proved AE-05 Tested AE-15 |
| 40 CFR Part 50, Appendix K, Equations 1 to 3 and Examples 1 to 3 | The expected number of PM10 exceedances of a year adds the estimate of each quarter, rounded to a hundredth, and rounds the sum to a tenth. A quarter with extra samples is scaled by the strata that it has. | expectedExceedances src/kernel/aermod.ts | Tested AE-16 |
| 40 CFR Part 50, Appendix K, rounding a day | A day of PM10 is rounded to the nearest 10 before it is compared with 150, so a day counts as an exceedance from 155. | exceedanceEdge src/kernel/aermod.ts | Proved AE-04 |
| 40 CFR 50.6, 50.17 and 50.20 | PM2.5 has a 24-hour level of 35 µg/m³ for the 98th percentile and an annual level of 9.0 µg/m³ for the mean. PM10 has a level of 150 µg/m³ that may be exceeded once a year on average. Sulfur dioxide has a level of 75 ppb for the 99th percentile of the daily highest hour. | FORMS src/kernel/aermod.ts | Tested AE-17 |
| 40 CFR Part 51, Appendix W, Section 9.2.2 | A modelled concentration should not be rounded before it is compared with the level. It is added to a background and set against the level as it stands. | designRun src/kernel/aermod.ts | Tested AE-19 Tested AE-20 |
| Rule of this product, the receptor | In each hour the receptor is placed along the wind and across it from its bearing and the direction of the wind. It gets nothing upwind, nothing across the wind and nothing nearer than the spread formulas hold for. | modelHours src/kernel/aermod.ts | Tested AE-21 |
| Rule of this product, the check of a day | A day is accepted as the nth highest of a year when fewer than n days are above it and at least n are at or above it. The check sorts nothing and does not read the engine. | checkNthHighest src/kernel/aermod.ts | Certified AE-06 |
| Rule of this product, the same bits everywhere | The cube root and the sine and cosine in degrees are written out, so that a receipt made in one engine is the same in every other. The platform library is not used for them. | cbrt src/kernel/dmath.ts | Tested KE-04 |
| Receipt of a design run | The receipt covers the input, the levels, the rank tables, the seed of the weather and every number that the figure shows. It is the same for the same input and changes when any input moves. | designReceiptPayload src/kernel/aermod.ts | Tested AE-22 |