Repository navigation
Releases
ArWen 3.0.1
ArWen 3.0.1. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==3.0.1". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
New
- Opt-in ocean waves (
--waves on) now also run on large lakes (5,000 km² or more). Depths come from ETOPO 2022 (the model's lake surface minus the lake bed); a lake starts calm and its waves grow from the forecast's own wind, so no outside wave model is needed. Checked on one case: a Lake Superior gale on 5 November 2026, ArWen at 12 km for 9 hours, wave height compared at three NDBC buoys. Lake ice is checked by a unit test only; lakes are not validated against a season of buoy observations, and nests carry no waves.
Fixed
gpuwm go --waves onfrom a pip install fetches the wave data bridge (rw_waves_data) from the release bundle on first use; it stopped with "rw_waves_data is required" unlessgpuwm fetch-bridgeshad been run first.- The wave bathymetry download fetches a range again when the server ends it early; a single short range stopped the first
--waves onrun with "bathymetry acquisition incomplete".
ArWen 3.0.0
ArWen 3.0.0. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==3.0.0". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
New
- WRF v4.8.0 is the reference: in strict numerics the HRRR recipe and the A071 configuration match native WRF 4.8.0 word for word through a whole forecast hour. WRF 4.7.1 behaviour stays selectable.
- WRF 4.8.0 physics: Grell-Freitas-Li cumulus (now the
cu_physics = 3default), YSU, the Shin-Hong rewrite, revised KIM gravity-wave drag with ELVMAX in the static step, MYNN-EDMF and MYNN-SFC 4.8.0 (opt-in), Fitch wind farms with the induction correction, dynamic lightning, and the equation-of-time sun. - TEMPO microphysics follows its newest upstream release by default (the earlier release stays selectable with
tempo_version), and TEMPO runs start from HRRR and RAP with their analysed number concentrations. - Opt-in upstream MYNN v6.1 bug fixes (
mynn_fixes_v61) on the MYNN route. - Over the contiguous US the starting snowpack comes from NOHRSC's SNODAS analysis (default on;
GPUWM_SNOW_ANALYSIS=offkeeps the forcing's snow). In three measured cases the mean absolute error of the starting snow water at SNOTEL sites drops by 56 to 84 percent. - Noah-MP snow layers start on a conduction profile between skin and soil instead of at the skin temperature (default; 1 keeps WRF's start).
- New opt-in Noah-MP options written from published papers rather than copied from upstream code: snow compaction (
opt_snow_compact), scale-aware snow cover (opt_scf), separate surface and subsurface runoff (opt_runsrf/opt_runsub), snow thermal conductivity (opt_tksno), a wetland store with its saturated area (noahmp_wetland), and for SNICAR snow albedo the Lin 2025 fresh grains, light-absorbing particles in snow, ice and dust optical sets, incident solar spectra and a five- or 480-band choice (snicar_solarspec_opt,snicar_bandnumber_opt), and the Toon two-stream solver (snicar_solver_opt). Particle-laden snow uses the same spectral solver and choices. - Noah-MP history writes surface and subsurface runoff (SFROFF, UDROFF).
- TEMPO runs in fast numerics at about 1.13 times the cost of Thompson per step (was about 2 times); strict numerics is unchanged.
- The static step writes the KIM 2026 drag statistics for MPAS meshes, used by gpuwm-hex's opt-in KIM drag.
Fixed
- ERA5 starts at any hour plan their boundary ladder, and the sea-surface skin is filled where the source leaves gaps.
- Static fields decode cached tile maps outside the cache lock.
- Noah-MP's snowmelt reset evaluates saturation vapour pressure at the reset ground temperature, which removes near-zero 2 m humidity at melting snow edges.
- SNICAR snow albedo no longer runs away to very cold skin temperatures on RTX 50-series cards, and its memory price no longer overstates what it needs several times over.
- Noah-MP runs take the faster resident GPU route by default.
- Observation downloads retry rate limits (HTTP 429) and server errors with backoff instead of failing on the first one.
- Ocean waves give the same answer run to run.
gpuwm domainwrites nested configurations with TEMPO microphysics; it stopped with an internal error before writing the file.- TEMPO microphysics runs with the Grell-Freitas and Kain-Fritsch cumulus schemes and with RTE+RRTMGP radiation; the forecast stopped at its start with those combinations.
- The urban canopy keeps very small (subnormal) rain amounts in its water balance when its kernels are compiled by the run's compile pool; they were read as zero there.
- Runs on the adaptive time step reset their hourly maxima at every history write, as WRF does (2-5 km updraft helicity, 10 m wind, updraft and downdraft speed, graupel, low-level reflectivity and hail size). They were maxima since the start of the run, so the hourly updraft-helicity map and the 1 h tracks showed every track since the start.
- Updraft-helicity tracks (1 h, 3 h and since the start) keep the updraft-helicity colour ramp, leave out values below 25 m²/s² and outline 75 m²/s²;
gpuwm simnow ends a run that drew pictures with the same end-of-run pass asgpuwm go, so its 3 h and since-start maps cover the whole run. - Frames between whole hours keep the map in the same place and use the same header layout as the hourly frames, so animations no longer jump; whole-hour frames of a sub-hourly run give their time to the minute.
- A nest fixed inside a moving parent draws its 1 h rain at every hour, with the ground the parent newly covers taken from the parent.
- Regional runs from a mapped source (IFS, ERA5 model levels, GEM, ICON-EU, RAP, RRFS, AIFS and the others) accept up to 21 domains; they refused more than four. The kernel pre-warm for very fine nests no longer fails on inflow seeding.
rw_mpas_init --augment-initadds the variables of every microphysics species the run declares, so gpuwm-hex starts with NSSL two-moment or P3 microphysics; they stopped with "the init file has no variable for" those species.- A gpuwm-hex run on a RUC land surface (the RRFS v2 and hrrrv5 suites) can be downscaled with ArWen: its nine soil nodes have their own source profile. Preparation refused the file because the only hex-history profile named Noah's four layers.
ArWen 2.9.13
ArWen 2.9.13. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.13". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
Fixed
- Pinned physics tables, kernel sources and verbatim WRF sources keep their exact bytes in the published packages, so the opt-in K-epsilon PBL (
keps) loads again. - A CF product table row's
scalehonoursmask_below, so a dry precipitation window draws a blank map instead of a solid first colour. - Internal working names and paths no longer appear in shipped files.
- A fresh
gpuwm[gpu-cu13]install keeps NVRTC and nvJitLink below 13.5: 13.5 arrived on PyPI after this line's kernels were measured and has no recorded kernel results yet. - Two MRF tests run on Windows.
ArWen 2.9.12
ArWen 2.9.12. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.12". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
New
- More WRF 4.7.1 options on the GPU, each opt-in: cumulus schemes (BMJ, multi-scale Kain-Fritsch, old SAS and
cu_physics = 99), the CAM5 suite (MP11, CU7, SHCU2), more microphysics, PBL, surface-layer and land options, and dynamics options such as more advection orders,momentum_adv_opt = 3andrk_ord = 2. - Moist potential temperature (
use_theta_m = 1), the SMS-3DTKE closure (km_opt = 5) and history-window averaged fluxes (do_avgflx_em = 1), opt-in. - Opt-in hurricane line: HAFS starts, storm merge, cyclone surface exchange and storm-following nests.
- Opt-in ocean waves coupled to the forecast: wave growth, transport and ocean feedback.
- SPPT and SKEB stochastic physics, written from the published method (opt-in).
- Starts from RRFS v1, and from ECCC HRDPS and RDPS with GFS donors for deep soil and upper air.
- 0-1, 0-2 and 0-3 km updraft helicity maxima in history and on maps.
- Public monthly aerosol forcing from NASA MERRA-2 for the aerosol-aware cumulus options (opt-in).
- An experimental AMD (ROCm/HIP) backend, opt-in with
--backend amd. CUDA stays the default. - Lossless GRIB2 history export on latitude-longitude, Lambert, Mercator and polar stereographic grids.
- An ensemble maximum map beside the mean, spread, probability and paintball maps.
Changed
- hrrrv5 preparation and the after-forecast tail use every core; the history write went from 85.5 s to 64.5 s.
- Fast nested runs on four cards: the nest step went from 77.6 s to 53.5 s.
- Map drawing and comparison sheets use every core (CONUS maps at 24 threads: 23.4 s to 3.9 s), and comparison sheets read only the fields their products need.
- Ensemble maps import only the fields they draw: 18 members by 5 frames went from 582.7 s to 27.2 s.
- The RRFS static walk takes 5 s instead of 453 s, and terrain preparation walks neighbouring mesh cells together.
- Memory preflight prices spectral nudging buffers and FFT workspaces.
Fixed
- Resuming a forecast keeps the checkpoint's HAILCAST stone model.
- 48 h runs with
--hydro onpublish again. - A square first slab no longer stops a forecast split across cards.
- Composite reflectivity draws from REFC when the frame holds parameterised convection.
- Mapped regions use the mesh's real coverage, and a region past the source's edge gets one plain message.
- Classic and aerosol Thompson use the same fetched tables.
- A crashed start no longer blocks the next start.
- Initial MYJ and QNSE surface wind diagnostics match native WRF.
- Derived maps (CAPE, SRH, STP and shear) carry the run's own header, with the right start and lead times.
- Build-machine paths are kept out of release binaries, and pinned physics tables keep their bytes through the export.
ArWen 2.9.11
ArWen 2.9.11. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.11". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
New
gpuwm go --wind-farms uswtdb|PATHruns Fitch wind-farm drag and turbine TKE inside the GPU MYNN step, with turbine and farm power, hub wind and TKE-source history (opt-in; WRFwindfarm_opt = 1imports too).gpuwm go --nudging spectral|gridnudges a forecast toward its source analyses (opt-in); imported WRFgrid_fdda = 1/2namelists run instead of being refused.- Simulated radar supports C- and X-band radars (TDWR and C/X agency radars) with finite-particle scattering, melting, Kdp and beam-integrated attenuation; S-band output is unchanged.
- Python programs can write simulated radar volumes from history or a georeferenced in-memory state with
gpuwm.simulated_radar.simulate; custom S-band sites accept beam width. - Sounding-based domains can be built and stepped through the versioned
gpuwm.domainPython API. - Idealized flat domains can follow a constant
umove/vmovemoving frame. gpuwm go --smoke-radiation on|offselects smoke-aware radiation explicitly.gpuwm.tables.status,gpuwm.tables.ensureandgpuwm fetch-tables --schemescheck and stage selected physics tables.rw_mpas_convert --grid-label TEXTheadlines a map with the view's own name and the spacing of the cells it shows.GPUWM_WRF_LIBMVEC=1makes WRF's original Tiedtke cumulus (cu_physics = 6) match WRF's stock gfortran vectorized build word for word.hailcast_versionselects the HAILCAST stone model: NOAA's operational HRRR v4 (wrf_39_noaa, the default) or WRF 4.6.1's (wrf_461).
Changed
- Forecast startup uses shipped CUDA 12/13 kernel images for its first-step kernels, so a cold start no longer waits on a single-core compile.
- Simulated radar during a forecast scans in-memory snapshots at the quick-look cadence, and a frame's radar sites are scanned in parallel (about 2.6x faster on many-site domains).
- Legacy RRTMG with smoke feedback reuses full-domain aerosol optics across radiation chunks (the radiation call takes about a third of the time).
- Forecast entry points explain the NVIDIA GPU requirement and the tools available without one.
- Checkpoint format 7 carries the MF_VX_INV map-factor words; format 6 checkpoints are refused with that reason.
- Simulated radar, ML export, the wind-turbine table decoder and the hydro payload library are staged from the release bundle on first use (
gpuwm fetch-bridges --partial --artifact NAMEstages one ahead of time).
Fixed
- With strict numerics, the June 2021 CONUS case matches WRF 4.6.1's pinned scalar build at +1 h and +2 h: 0 of 265,734,210 common history words differ.
- The MYJ surface layer takes the background roughness Noah writes each step, as WRF does.
- Single-domain HRRR runs with a quick look prepare their quick-look inputs.
- Native lateral smoke forcing reads the configured boundary smoke source at later forcing times.
- Legacy RRTMG sizes its shortwave workspace inside the CuPy memory limit, so it no longer fails at startup on a shared card.
- Missing or corrupt physics tables name the file and the staging command; interrupted table downloads restart safely.
- HAILCAST surface hail follows NOAA's operational HRRR v4 by default, so its swaths are no longer thin and broken.
- Runs with terrain drag (every HRRR recipe) and a companion export no longer exit 1 after a finished forecast.
- A case prepares the same lake temperatures from a cold or a warm cache.
rw_compare --compare hrrrhail sheets pair each hail field with the HRRR message made from it.
ArWen 2.9.10
ArWen 2.9.10. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.10". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
Changed
- GraphCast (operational and small) runs at every default door: its weights are CC BY 4.0, which permits commercial use, since 2026-08-06.
- Starts from ECMWF open data, AIFS and ECMWF ENS have sea ice, taken from the same cycle's GFS analysis by downloading that one record (about 0.1 MB) by its index.
- IFS open-data starts (0.1 and 0.25 degree) and ECMWF ENS member starts download only the records they read, about a third of the bytes, and AIFS starts about half; the prepared start is unchanged.
- HRRR starts download only the records the preparation reads, about 40 % of the bytes (4.6 GB -> 1.8 GB for a 3 h window); the prepared start is unchanged.
- HRRR native-level starts (
--source hrrr-native) download only the records they read: about half the bytes, the soil donor 29 MB instead of 515 MB, and a two-lead start's download in about half the time; the prepared start is unchanged. - HRRR pressure-level starts (
--source hrrr-prs) download only the records they read, about 40 percent of the bytes, and record-subset downloads move their byte ranges over persistent connections; a two-hour HRRR pressure-level start fetched in 16 s instead of 44 s. - RRFS and RRFS ensemble starts download only the records the start reads, selected from the index beside each file: about 330 MB per lead instead of 870-920 MB, and an ensemble member about 440 MB instead of 1.1 GB; the prepared start is unchanged.
- ERA5 starts from Google's ARCO store download only the compressed blocks that hold the area's rows instead of whole-globe chunks: a 12 x 15 degree area moves 174 MB instead of 836 MB; the prepared start is unchanged.
- GEFS member starts download only the records the start reads, selected from the index beside each file: about 33 MB per member and lead instead of 105-118 MB; the prepared start is unchanged.
- GFS and GDAS starts that read the AWS archive's objects (hosted runs, and cycles older than the grib-filter host keeps) download only the records the start reads: a 3-lead GFS start moves 278 MB instead of 1,556 MB and a GDAS start 553 MB instead of 1,445 MB, and prepares the same bytes.
- Thompson microphysics (
mp_physics8 and 28) fills negative water vapour the way WRF's driver does. - RUC suites authored from any source start the ground vapour from the air (
ruc_qvg_cold_start = "air"). - History frames are written as lossless compressed NetCDF-4: every value reads back unchanged and a frame takes about a third of the disk.
--history-compression nonewrites classic frames. - Nest preparation on CUDA always uses a certified card and matches CPU preparation byte for byte, so two runs of one case prepare the same child inputs.
met_intermediatewrites WPS intermediates from GRIB2 byte for byte as native ungrib does; initial conditions built from GRIB2 change in the last bits.- Annual NLCD Developed, Open Space (class 21) maps to grassland instead of urban, so airports, suburbs and small towns no longer stay warm all night with
landcover_source = annual-nlcd. - Choosing a different boundary or surface layer on the HRRR mp28 set runs WRF 4.6.1's Thompson;
thompson_version = "wrf_39_noaa"keeps HRRR's. - Generated MPAS meshes number their cells in Morton order, so neighbouring cells sit together in memory and the dycore step on hex's default 96 -> 3 km zoom globe takes about a third less time.
rw_rrfs_uppwrites RRFS v2 GRIB2 under the message identities NOAA's UPP writes, and composite, 1 km and -10 C reflectivity with no echo are -20 dBZ, as UPP writes them.
New
- Optional Icechunk output stores native forecast history as lossless Zarr v3 snapshots, locally or on S3 (
--output-format netcdf,icechunk). ghg_input = 1reads WRF's CAMtr time-varying greenhouse gases in RRTMG and RRTM longwave, and a WRF namelist from a named V4 release (--wrf-version 4.6.1) runs that release's scheme versions.rw_mpas_mpassit(MPAS history onto RRFS v2's 3 km Lambert grid) andrw_rrfs_upp(RRFS v2 GRIB2 products) build from source.gpuwm domainandgpuwm downscaletake--les-closure smagorinsky|tkefor grids at LES spacing, andgpuwm domainseeds inflow turbulence on the first LES nest under a 1-D boundary-layer parent (--les-inflow-seeding offskips it).[static.highres] lcz_pervious = "split"makes only the paved share of each CGLC-MODIS-LCZ built pixel urban and the rest natural vegetation, for runs without an urban canopy model; the default is unchanged.
Fixed
- Nest-down children at or below 250 m run LES (no boundary-layer scheme, a 3-D closure) instead of 1-D MYNN, which could go non-finite at that spacing;
--les-below-m 0keeps the 1-D scheme. - Nest-down children at 600 m and finer build their land cover and soil at source resolution, so their 2 m temperature no longer shows 1 km squares.
- Starts from ECMWF open data no longer fail when ECMWF's AWS mirror throttles (503 SlowDown): the fetch waits it out or moves to the next mirror.
- HRRR and RAP soil moisture reaches Noah unchanged again, so Noah runs on HRRR no longer start with dried soil; the Noah mosaic (
sf_surface_mosaic = 1) runs on the HRRR route again. - The revised MM5 surface layer (
sf_sfclay_physics = 1) matches an optimised WRF 4.6.1 build word for word in strict mode, and a WRF-file run integrates on the files' own vertical constants. - Simulated radar skips quick-look frames, so a run with 5-minute quick looks no longer fails.
- Simulated radar velocity on quick-look frames no longer draws a line along a nest's edges.
- A finished forecast no longer hangs at exit holding its card.
- Kernel compile workers end with the run that started them, however it ends, instead of staying behind holding memory.
- IFS 0.1-degree open data starts at its first cycle that carries soil (2026-10-20 12Z); the cycle before it is refused before downloading.
- Hex starts from HRRR get 10 m wind and 2 m humidity on regional boxes west of Greenwich.
- Hex starts from HRRR with no whole HRRR file on disk download the records they decode instead of failing at the intermediate stage.
rw_mpas_init --first-guess-hydrometeors yesstarts an MPAS initial state from the first guess's own cloud, rain, ice, snow and graupel, so hex starts from HRRR no longer begin with no condensate.- Sea-level pressure maps are smoothed over high terrain, and
rw_mpas_streamwrites an MPAS history frame about 4x faster. - MPAS history and diagnostics written by
rw_mpas_streamopen in netCDF-C and netCDF4-python when they hold a scalar variable. - A finished ensemble member no longer fails when the product drain is busy; the seal waits for it.
- HRRR starts refused for one out-of-range soil cell outside the domain, or for a one-quantum rounding step, now run.
- A radiation, cumulus or boundary-layer interval that is not a whole number of steps runs every NINT(minutes x 60 / dt) steps, as wrf.exe does, instead of being refused.
- Strict two-domain runs no longer crash at the first nest step.
- Runs with
sf_urban_physics = 1or 20-category land use no longer fail after the forecast when the companion WRF files are written. - Direct WRF exports carry the 20 terrain-drag statistics for
gwd_opt = 3and the prepared lake depth foruse_lakedepth. - The native wrfinput door keeps an authored
mix_full_fields = .false.. - An empty
CUDA_VISIBLE_DEVICESstays empty when a forecast is relaunched. - A plain
gpuwm gowrites the column store for every output frame; the column store and soundings read compressed frames on every core. - Disk admission prices quick-look frames at their subset and compressed history at its measured size, so runs are no longer refused for disk they do not need; quick-look frames carry T and PHB only when named.
rw_soundingsdraws small batches on the CPU instead of creating a GPU device per batch.- Soundings with no effective inflow layer show MOSHE as
--instead of a meaningless value. - RRFS-MPAS initial conditions match the native fork at limited-area boundary edges and run on every core (a 3 km CONUS init: 492 s to 85 s); a GFS cold start no longer rains out over the whole domain in its first hour.
- MPAS maps reduce sea-level pressure from the real terrain, mask a limited-area mesh's boundary rings, include parameterised convective rain in composite reflectivity, and name a graded mesh by its refined and background spacing.
- Soundings colour the MCS Index the right way round: a low value means a likely MCS, so quiet soundings no longer show it in the alarm colour.
- 2 m dewpoint maps of hex limited-area runs leave the area outside the mesh blank instead of painting it -40 F.
- Maps of a run started off the whole hour keep exact valid times and name the init minutes.
- A nested run on a source that posts lead by lead (HRRR, RAP) starts on its first leads instead of waiting for the cycle's last lead.
- A nested run with MYNN TKE advection on (
bl_mynn_tkeadvect = true) starts instead of stopping at preflight. - Runs with Kain-Fritsch cumulus and Thompson microphysics no longer show the cumulus scheme's drizzle as 20-30 dBZ strips at domain and nest edges: its rain now carries a rain number.
- A forecast resumed from a checkpoint with
nwp_diagnosticsswitched on or off runs inste...
ArWen 2.9.9
ArWen 2.9.9. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.9". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
New
- A built-in hurricane map theme,
woof-light-tc: 10 m wind bands with edges at 34, 50, 64, 83, 96, 113 and 137 kt up to 180 kt, and isobars every 4 hPa from 880 hPa. Themes can set per-product colour boundaries, andgpuwm.rustwx.RENDER_THEMESlists the built-in themes. rw_probgriddraws a precomputed probability field on a fixed ladder;--scale lowgives steps from 0.5 to 30 % for hourly probabilities. It is fetched on demand:gpuwm fetch-bridges --partial --artifact rw_probgrid.
Fixed
- Forecasts that start a RUC or Noah land surface from another model's soil (ERA5, GFS, GEFS, IFS and others) map its soil moisture onto the land model's own scale, and RUC runs over CONUS take HRRR's RUC soil, so the surface no longer starts too wet and too cold.
gpuwm gono longer waits up to five minutes on a stuck kernel warm-up before the forecast starts.gpuwm go --restartcontinues a checkpoint taken while GFS boundaries were still streaming.- Ensemble members no longer fail at a checkpoint when another process hard-links their restart files.
- Earth-2 runs from a recent GFS cycle find their GDAS donor analysis when it is fetched whole from AWS.
- Earth-2 model construction and loader preparation run on Windows.
- StormCast reads sea-level pressure under either Earth2Studio name; AIFS starts from the IFS analysis, takes ERA5 for hindcasts and refuses a source that lacks a model input; Aurora 1.5 fetches only its checkpoint and statics.
- Earth-2 ensemble noise is scaled to each channel, so SFNO and the other perturbed models no longer start from noisy winds.
- Runs of 48 h or longer with sea ice on the grid start again, and the ice's ocean heat flux leaves the PWP or mixed-layer column.
- An analyzed vegetation fraction a rounding step past 100 %, or with missing cells, is repaired cell by cell instead of refusing the run.
- Sensitivity and member-roster ensembles whose window ends between source times fetch the times on both sides.
- A run with a quick-look stream accepts its own default history cadence.
- Every physics choice the catalog offers runs: the gsd_41 cloud merge on every radiation scheme, PBL scalar mixing for every microphysics, and PBL choices bring their surface layer.
- Kernel compiler pools follow the container's CPU quota.
- HRRR-recipe preparations write their stock-WRF companion files, and
gpuwm prep --source hrrrpasses--no-stock-wrf-export. - CPU preprocessing no longer opens a CUDA context on the card.
- Time-lagged HRRR members take their own run's soil at the start, and
gpuwm ensemble --prepare-onlyruns without CuPy. - Isobars through a grid point exactly on a contour level are drawn whole.
- Ensemble roster seals link checkpoint sets instead of copying them.
gpuwm source-intermediate --memberselects one member's frame.gpuwm goreuses idx-subset HRRR folders ([fetch] mode), HRRR-native bridges are hashed on every core, andGPUWM_PIPELINE_WORKERSsets the HRRR decoder workers on a shared host.gpuwm go --no-verify-visuals(orGPUWM_VERIFY_VISUALS=0) no longer starts the post-run verification worker, so the card is free when the forecast ends.- Member restart archives are checksummed on every core.
- HRRR preparation workers exit when their parent is killed, so none is left holding card memory.
- Runs that write hourly checkpoints and keep one set no longer stop on a missing checkpoint: older sets are retired on the stepping thread after the new set is written.
- An HRRR configuration edited after
gpuwm domainwrote its namelists (for example turning on gsd_diagnostics) now runs what the configuration says instead of being refused after preparation. - A moving step-down writes one nest history across its segments, so hourly window products such as qpf_1h are drawn on moving grids.
- On the tiled (streamed) forecast path, IAU forcing, its dry-mass share and the balance record act on the windows that step.
- Analysis member legs hash each input file once, beside their work, read the increment once and keep the leg server's pinned memory between legs.
- The any-point column store is written on every core instead of one.
- ArWen forecasts wait for the card with blocking sync instead of spinning a CPU core.
- GFS preparation runs its host passes on every core and decodes the WIF climatology once, and a CUDA preparation on a host with several cards takes the least-busy card.
- Resuming an HRRR fetch in another
--modeno longer mixes whole files and subsets; the receipt records each file's mode. gpuwm domain --recipe hrrr_v4_gsd41 --source hrrron an HRRR cycle before 2020-12-02 sets the model top at that era's source top instead of refusing after the download.gpuwm go X.toml --prepare-onlyfollowed bygpuwm go X.toml --prepared-root RUN/preparedruns with the same configuration instead of being refused.- With full history every few hours, the column store takes only the frames that carry the 3-D state instead of warning on every frame in between.
- Analysis bundles write the analysis once and run their field loops, balance and digests on several threads.
- The tiled analysis leg plans its tiles after the analysis increments are on the card, so it no longer runs out of memory on its first step.
- Hourly rain on a moving step-down grid now covers ground the grid reached during the hour, not only ground it covered all hour.
ArWen 2.9.8
ArWen 2.9.8. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.8". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
Fixed
- A cycle younger than an archive holds (GDEX 48 h, NCEI 0.5 degree 72 h) is fetched from the next source instead of failing on the archive.
- Ensemble members that share a download folder no longer rewrite each other's composed files (gem-gdps, ecmwf-open-data-0p1, GEFS).
- Moving nest-downs finer than 4 km drop the parent's MM5-only surface-layer options with the parent's surface layer.
- GOES-17 ABI windows (full disk and PACUS) fetch.
- The radar-tendency receipt records a slot with no covered point.
rw_mpas_staticbuilds global statics about twice as fast, with identical output.
ArWen 2.9.7
ArWen 2.9.7. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.7". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
New
- Run controls: per-nest history intervals, a quick-look stream between full frames (
quicklook = { every_s, history_vars }), an LES closure below 250 m, the storm nest size and an inner nest. - Moving nest-downs:
gpuwm downscale --follow storm|parent|fixed|targetand--warm-from. - Every run and ensemble member writes the any-point column store (rw-store v2), so soundings can be drawn at any point and hour after the run.
- IFS HRES open data at 0.1 degree (
ecmwf-open-data-0p1) at any posted cycle and lead. - RRFS ensemble members start with their same-cycle deterministic companion, which supplies the land state and the column above the member's 250 hPa top.
- HRRR v4 climate statistics (
output_diagnostics,diag_int,wind_int) and the HRRR initial-history reflectivity. - A sub-hourly history subset beside hourly full frames (
[output] full_history_interval_s). - Children finer than 4 km (
gpuwm downscale --point,--source hex-global) default to the HRRR-shape suite;--physics-profile IDorparentchooses. - A hydrometeor handed to a child (another model's analysis, a downscale, the specified ring) arrives with a number that matches its mass.
- Cyclone runs: a rain swath product, and moving-nest accumulations kept in one fixed frame across moves.
- 5 km CONUS forecasts stream on a 32 GB card.
- CONUS hydro from EPA NHDPlus V2.1 with
pip install "gpuwm[hydro-conus]". - Remote resumes find prepared bundles and checkpoints across chain names.
- Branched ensembles (
gpuwm ensemble --branch-from) share each card among several members (--members-per-card auto) and draw their maps on every core; branched members write column stores, and ensemble maps carry their map transform for any-point soundings.
Fixed
gpuwm gowith the default products on grids whose spacing is not a whole kilometre.- Maps: isobar labels and H/L marks are drawn over wind barbs; the sounding location inset has world coastlines; the ensemble paintball map has a member legend; the meteogram's end barbs stay inside the panel.
--cyclone-productsworks with ensembles and with tiles; gzipped b-decks, track times in UTC, and Earth-2storm: autopicks the named storm's low.- The 30 m terrain overlay takes a following nest's all-ocean first footprint; the corridor terrain mosaic and its resample run on every core.
- Morrison runs a small domain in one launch; the start state, the regional hex static and polygon meshes build on every core; nested adaptive runs land on output times with fewer steps;
rw_mpas_streamencodes on every core. rw_wrfbatchno longer overflows its stack importing a 1 km hex region frame.- mp=28 downloads the pinned WIF aerosol climatology or refuses by name; the synthetic profile is used only when named.
--recipe hrrrandhrrr_v4are accepted, and--recipetakes--forecast-start-hour. - Ensemble preparation: one download per object and an atomic HRRR bridge gate.
- RUC: the soil-moisture floor after the 0 m anchor, and partial sea-ice albedo and emissivity seeds.
- MPAS-route exports read reflectivity from the diag stream.
- A streamed moving nest's checkpoint keeps its accumulation archive.
gpuwm run --wrfinputand--met-emstream a forecast the card cannot hold resident instead of refusing it.- GFS archive cycles with no index read their level ladder from the object; HRRR coastal matching works at an open window edge; hydro parameters handle catchments leaving the window; two
--prepare-onlylaunches in one second get two run folders. - The 1 km nest of an HRRR 3-1 tree and ICON global source normalization initialise on every core.
ArWen 2.9.6
ArWen 2.9.6. The desktop stays ArWen Desktop 1.0.10, from the 2.9.0 release.
- Install or upgrade:
pip install --upgrade "gpuwm[all-cu12]==2.9.6". - Integration kit, verification records, and checksums.
- Node GPU gate: Stage 1 and both GPU-shard results, with the tested source revision and card identity.
New
- Soundings at any point after a run:
gpuwm soundings RUN --columns DIRwrites a column store of every column at each history time, and a sounding drawn from a stored column matches one drawn from the history file. - Soundings say what they show: the point, valid time, forecast hour and member at the top left, and the model and its start in bold at the top right (
title,brandandinitsettings, orGPUWM_SOUNDINGS_SETTINGS).rw_hex_pointstakes--brand. - Single-domain runs apply
[perturbation]warm bubbles. gpuwm hydro ahead CONFIGbuilds a domain's hydro fabric before the launch that uses it.
Fixed
gpuwm gono longer waits about 35 minutes on a RAP or HRRR native cycle that has already posted.- HRRR and RAP smoke starts before 2021-12-21 14Z read MASSDEN in its real units (ug m-3).
- Morrison microphysics (mp=10) steps about 11% faster, with identical output.
- The end-of-run redraw of a fire (SFIRE) forecast no longer fails on the native fire panels, and those panels keep their folders.
- A WRF-input
--restartstarted from another directory is no longer refused as a different run. - Preparation has no single-core stages between fetch and forecast, and a forecast from a prepared bundle pre-warms its kernels.
rw_soundingsreads only the profile columns it needs (much faster, a quarter of the memory) and no longer hangs at exit.- A fetch that streams many files at once no longer uses up the account's file watchers (other programs then failed with "too many open files").
- Maps: threshold colorbars (snowfall, liquid equivalent) give every band the same length with a tick at each boundary; a map with nothing to draw says why; rain, snow, freezing rain and ice pellet flags are drawn as two categories with crisp edges; dimensionless fields carry no unit label; the map frame is the same width on every side.