CASCADIA-WX

Upper air and snowpack in FORTRAN · Quillayute · Salem · Medford · Spokane

Four National Weather Service weather balloons go up over the Pacific Northwest twice a day. A FORTRAN program reads every level of every flight and works out how high it's freezing, where the snow line is and whether an atmospheric river is coming ashore. Then it ranks each balloon against 30 years of balloons on the same date.

LATEST BALLOON —
LAST RUN —
SITES —
RETURN CODE —

The job job-log.txt · last run

Every run is a batch job, like a mainframe: Python fetches the balloons, GFortran compiles the program, the program runs and sets a return code. 0 is normal; 4 means something was missing or late, and the report says what.

LOADING job-log.txt…

The air now air.csv · against 1991–2020

Each site's latest balloon. The bar under the freezing level spans the 10th to 90th percentile of every balloon within a week of today's date from 1991 to 2020; the darker middle is the normal range, 25th to 75th. The tick is today.

The balloon level by level

TemperatureWet-bulbDew point

Freezing level is where the temperature line crosses 0 °C. Snow level is estimated 1,000 ft below it, the National Weather Service's rule of thumb. IVT, integrated vapour transport, is the water vapour carried sideways through the whole column from the surface to 300 hPa; 250 kg/m/s or more is atmospheric-river strength (Ralph and others, 2019). The dashes at the left are the SNOTEL snow stations' elevations.

Every balloon against normal

Freezing level at each launch, over the normal band for the date. Below the band means unusually cold air aloft; above it, warm. Then the vapour transport: spikes above 250 are the atmospheric rivers.

Freezing level, ftNormal range, 25th–75th10th–90th
IVT, kg/m/s250: atmospheric-river strength

Atmospheric rivers this water year, since October 1

The map

The snowpack NRCS SNOTEL · against 1991–2020 medians

Twelve snow stations on Rainier, the Olympics and the Cascades, against NRCS's own medians for the date.

The printout cascadia-wx-report.txt · 132 columns

What FORTRAN writes, exactly as written, on green-bar paper.

Loading…

The source on a FORTRAN coding form

The loop that adds up the water vapour through the balloon's column, copied live from CWX_PHYS.f90. On the 1957 form, columns 1–5 held a statement number, 6 marked a continued line, 7–72 the statement and 73–80 the card's ID. This is modern free-form FORTRAN, so it doesn't follow those columns, but every line keeps to the form's 72-column width.

FORTRAN CODING FORMPROGRAM CASCADIA-WX · ROUTINE ANALYSE · PROGRAMMER B. GROVES
IVT = (1/g) ∫ q·V dp, surface to 300 hPa, by the trapezoid rule. q is specific humidity from the dew point; V is the wind.

About

Why FORTRAN. It was the first language built for scientists, in 1957, and the atmosphere has been computed in it ever since: the National Weather Service's models, NCAR's climate model, ECMWF's forecasts and WRF are all FORTRAN. This is a much smaller program in that tradition. It is the sister project of SIERRA-FLOW, which does Sierra Nevada rivers in COBOL.

Normal, built in FORTRAN. A second program, NORMALS, reads every 00Z and 12Z balloon from the four sites from 1991 through 2020, works out each one's freezing level, precipitable water and vapour transport with the same code as the daily run, and keeps the 10th to 90th percentiles for every site and day of the year, using every balloon within a week of the date.

What's real. Every number on this page comes from a file FORTRAN wrote; the page draws charts and does no arithmetic of its own. The balloon data are the National Weather Service's radiosonde reports, from the Iowa Environmental Mesonet archive. Snowpack comes from the NRCS SNOTEL network with NRCS's own 1991–2020 medians. When a source is down, the job says so with return code 4 and keeps the last good data instead of filling in numbers.

Corrected in October 2026. The first version, from April, asked NRCS for three stations that don't exist (Snoqualmie, Stevens and Stampede passes) and quietly filled in zero snow when it got nothing back. It compared every day against made-up April 1 normals, and its "atmospheric river index" was a formula of snow level and snowpack, not a measurement. So the April reading that the passes were bare and the Cascades were at 15% of normal was wrong. NRCS's own numbers show the Snoqualmie Pass station holding about 25 inches of water that week, close to half of normal. Version 3 is rebuilt on the balloons, which measure the atmosphere directly. The write-up explains it.

Limits. One balloon is one place at one moment, not a forecast; the official atmospheric-river scale also weighs how long a river lasts. Not every site launches at the classic 00Z and 12Z any more: Spokane has gone up at 06Z and 18Z since at least October 2025, and Medford at 00Z and 18Z since July 2026. Their normals come from 00Z and 12Z flights, so for those launches the comparison is rougher near the ground, where the time of day matters most. The Iowa archive sometimes misses a few days that other archives have; each run looks back ten days so late arrivals get picked up. Snow level is a rule of thumb. SNOTEL air temperatures carry a known sensor bias that NRCS is working on.