Physics options
wrf_gpu v0.4.0 runs most WRF 4.7.1 physics schemes on the GPU. This page lists every
option code of the seven physics selectors with its status in this release. The codes are the same
numbers you put in the &physics section of a WRF namelist.input.
What the status words mean¶
| Status | Meaning |
|---|---|
| Default | Part of the default physics suite (Thompson, MYNN boundary layer and surface layer, Noah-MP, RRTMG, with Kain-Fritsch cumulus on outer domains). This suite has the most testing: 24-hour comparisons with the original CPU-WRF on five real cases, including nested Canary Islands forecasts, and 72-hour runs in earlier releases. |
| Validated 24 h | Runs on the GPU and passed a 24-hour comparison with the original CPU-WRF, started from the same input and judged against limits fixed in advance. |
| Validated 6 h | As above, but the accepted comparison covers six forecast hours. |
| Experimental | Runs on the GPU but is outside the validated set: either it has no passing comparison, or it passed one outside the release test set. Its note says which. |
| CPU only | Implemented and checked on the CPU; a GPU run refuses it. |
| Python API only | Usable from Python with extra land inputs; gpuwrf run refuses it. |
| Not supported | gpuwrf run stops before the forecast with a message that names the option. |
Notes used in the tables:
- Passed the comparison, but its compiled GPU code exceeds our code-quality limits for speed and robustness (for example large per-thread memory use). It runs correctly; its speed has not been measured and may be lower than with the default physics. The resource list names each case.
- Needs the Triton 3.6 compiler (
pip install "triton==3.6.*"). The code-quality scan of its compiled GPU code could not be completed. - Runs, but cannot be validated: the original WRF crashes on the test case at its first output.
Use it with
cu_physics=0. - Passed a 24-hour comparison outside the release test set, and has the code-quality issue of note 1.
How the options were checked¶
The release check ran 66 configurations, each a scheme with a fixed set of companion schemes, compared hour by hour with the original CPU-WRF: 65 over 24 hours and the Goddard radiation pair over six hours. They are mostly single-domain forecasts; two-way nesting was checked on a two-domain case. Every option marked Validated 24 h or Default passed in one of them, and Goddard radiation is marked Validated 6 h. Options marked Experimental, CPU only, Python API only or Not supported are outside this check; their notes and status say why. Most configurations (51 of 66) used the bundled Swiss Alps case; options that need special surfaces, such as lakes, cities, open sea or wind farms, used cases that contain them. The validation page explains the method and the limits.
A pass covers the tested configuration. It does not test every combination of schemes, and options
outside the default suite have not been validated inside nested domains. The RUC land model
(sf_surface_physics=3) is refused in nested runs. The
support matrix records the exact configuration and
companion settings behind each row.
Schemes that must be paired¶
As in WRF, some schemes only work together. gpuwrf run and gpuwrf doctor
check this before the forecast and name the setting to change. The most common pairings:
- QNSE:
bl_pbl_physics=4withsf_sfclay_physics=4. - TEMF:
bl_pbl_physics=10withsf_sfclay_physics=10, without a land model or with Noah-MP. - EEPS and KEPS (
bl_pbl_physics=16/17):sf_sfclay_physics=1, without a land model or with Noah-MP. - Goddard radiation:
ra_lw_physics=5andra_sw_physics=5together, with Thompson microphysics anduse_mp_re=1. - Ferrier microphysics (
mp_physics=5/15):cu_physics=0. - Grell-family and Tiedtke cumulus:
cudt=0, so the scheme runs every step.
Microphysics mp_physics¶
| Code | Scheme | Status |
|---|---|---|
| 0 | no microphysics | Validated 24 h |
| 1 | Kessler warm-rain | Validated 24 h1 |
| 2 | Lin et al. (Purdue-Lin) | Validated 24 h1 |
| 3 | WSM3 simple-ice | Validated 24 h |
| 4 | WSM5 | Validated 24 h1 |
| 5 | Ferrier (new Eta), HRW | Validated 24 h |
| 6 | WSM6 graupel | Validated 24 h1 |
| 7 | Goddard 4-ice | Validated 24 h |
| 8 | Thompson | Default |
| 9 | Milbrandt-Yau 2-moment | Validated 24 h1 |
| 10 | Morrison 2-moment | Validated 24 h1 |
| 11 | CAM 5.1 microphysics | Validated 24 h2 |
| 13 | SBU-YLin | Validated 24 h1 |
| 14 | WDM5 | Validated 24 h1 |
| 15 | Ferrier-Aligo advected rime | Experimental3 |
| 16 | WDM6 | Validated 24 h1 |
| 17 | NSSL (legacy) | Validated 24 h1 |
| 18 | NSSL 2-moment 4-ice w/ predicted CCN | Validated 24 h1 |
| 19 | NSSL one-moment with hail | Validated 24 h1 |
| 21 | NSSL one-moment without hail | Validated 24 h1 |
| 22 | NSSL two-moment without hail | Validated 24 h1 |
| 24 | WSM7 (separate hail/graupel) | Validated 24 h |
| 26 | WDM7 (separate hail/graupel) | Validated 24 h1 |
| 27 | UDM 7-class | Not supported |
| 28 | aerosol-aware Thompson (water/ice-friendly) | Validated 24 h1 |
| 29 | RCON (Thompson aerosol-aware, liquid-phase mods) | Not supported |
| 30 | HUJI spectral-bin (fast) | Not supported |
| 32 | HUJI spectral-bin (full) | Not supported |
| 38 | Thompson w/ 2-moment graupel/hail | Validated 24 h1 |
| 40 | Morrison 2-moment w/ CESM-NCSU RCP4.5 aerosol | Validated 24 h1 |
| 50 | P3 1-ice, 1-moment cloud water | Validated 24 h |
| 51 | P3 1-ice + double-moment cloud water | Validated 24 h |
| 52 | P3 2-ice + double-moment cloud water | Validated 24 h |
| 53 | P3 1-ice 3-moment + double-moment cloud water | Validated 24 h |
| 55 | Jensen-ISHMAEL | Validated 24 h1 |
| 56 | NTU multi-moment | Validated 24 h1 |
| 95 | Ferrier (old Eta) | Not supported |
| 96 | Madwrf | Not supported |
| 97 | Goddard GCE | Validated 24 h1 |
Cumulus cu_physics¶
| Code | Scheme | Status |
|---|---|---|
| 0 | no cumulus | Validated 24 h |
| 1 | Kain-Fritsch (new Eta) | Default |
| 2 | Betts-Miller-Janjic (BMJ) | Validated 24 h1 |
| 3 | Grell-Freitas ensemble | Validated 24 h |
| 4 | Scale-aware GFS SAS | Not supported |
| 5 | Grell 3D ensemble | Validated 24 h1 |
| 6 | Modified Tiedtke | Validated 24 h1 |
| 7 | Zhang-McFarlane (CAM5) | Experimental4 |
| 10 | Modified Kain-Fritsch (PDF trigger) | Validated 24 h |
| 11 | Multi-scale Kain-Fritsch (MSKF) | Validated 24 h |
| 14 | KIM Simplified Arakawa-Schubert (KSAS) | Validated 24 h1 |
| 16 | New Tiedtke | Validated 24 h1 |
| 93 | Grell-Devenyi ensemble | Validated 24 h |
| 94 | 2015 GFS SAS (HWRF) | Validated 24 h1 |
| 95 | previous GFS SAS (HWRF) | Validated 24 h1 |
| 96 | previous new GFS SAS (YSU) | Validated 24 h1 |
| 99 | previous Kain-Fritsch | Validated 24 h1 |
Planetary boundary layer bl_pbl_physics¶
| Code | Scheme | Status |
|---|---|---|
| 0 | no boundary-layer | Validated 24 h |
| 1 | YSU | Validated 24 h1 |
| 2 | Mellor-Yamada-Janjic (MYJ) TKE | Validated 24 h1 |
| 3 | Hybrid EDMF GFS (ACM-GFS) | Validated 24 h |
| 4 | QNSE-EDMF (Quasi-Normal Scale Elimination) | Validated 24 h1 |
| 5 | MYNN TKE | Default |
| 7 | ACM2 (Pleim) | Validated 24 h1 |
| 8 | Bougeault-Lacarrere (BouLac) | Validated 24 h1 |
| 9 | UW (CAM5) | Validated 24 h |
| 10 | TEMF (Total Energy Mass Flux) | Validated 24 h1 |
| 11 | Shin-Hong scale-aware | Validated 24 h1 |
| 12 | Grenier-Bretherton-McCaa | Validated 24 h1 |
| 16 | TKE + TKE-dissipation (epsilon) | Validated 24 h1 |
| 17 | TKE + TKE-dissipation + TPE | Validated 24 h1 |
| 99 | MRF | Validated 24 h1 |
Surface layer sf_sfclay_physics¶
| Code | Scheme | Status |
|---|---|---|
| 0 | no surface-layer | Validated 24 h |
| 1 | revised MM5 Monin-Obukhov | Validated 24 h1 |
| 2 | Monin-Obukhov (Janjic Eta) | Validated 24 h1 |
| 3 | NCEP GFS surface layer | Validated 24 h |
| 4 | QNSE surface layer | Validated 24 h1 |
| 5 | MYNN surface layer | Default |
| 7 | Pleim-Xiu surface layer | Validated 24 h |
| 10 | TEMF surface layer | Validated 24 h1 |
| 91 | old MM5 surface layer | Validated 24 h1 |
Land surface sf_surface_physics¶
| Code | Scheme | Status |
|---|---|---|
| 0 | no surface temp prediction | Validated 24 h |
| 1 | thermal diffusion (5-layer slab) | Python API only |
| 2 | Unified Noah LSM | Python API only |
| 3 | RUC LSM | Validated 24 h |
| 4 | Noah-MP LSM | Default |
| 5 | CLM4 (Community Land Model v4) | Not supported |
| 6 | CTSM (Community Terrestrial Systems Model) | Not supported |
| 7 | Pleim-Xiu LSM | Python API only |
| 8 | SSiB (Simplified Simple Biosphere) | Validated 24 h1 |
Longwave radiation ra_lw_physics¶
| Code | Scheme | Status |
|---|---|---|
| 0 | no longwave radiation | Validated 24 h |
| 1 | RRTM | Validated 24 h1 |
| 3 | CAM | Validated 24 h |
| 4 | RRTMG | Default |
| 5 | Goddard longwave | Validated 6 h |
| 7 | FLG (UCLA) | CPU only |
| 14 | RRTMG-K (KIAPS) | Not supported |
| 24 | fast RRTMG (GPU/MIC) | Not supported |
| 31 | Earth Held-Suarez forcing | Validated 24 h |
| 99 | GFDL (Eta) longwave (semi-supported) | CPU only |
Shortwave radiation ra_sw_physics¶
| Code | Scheme | Status |
|---|---|---|
| 0 | no shortwave radiation | Validated 24 h |
| 1 | Dudhia | Validated 24 h1 |
| 2 | Goddard shortwave | Validated 24 h1 |
| 3 | CAM | Validated 24 h |
| 4 | RRTMG | Default |
| 5 | Goddard shortwave (new) | Validated 6 h |
| 7 | FLG (UCLA) | CPU only |
| 14 | RRTMG-K (KIAPS) | Not supported |
| 24 | fast RRTMG (GPU/MIC) | Not supported |
| 99 | GFDL (Eta) (semi-supported) | CPU only |
Noah-MP options¶
With sf_surface_physics=4, the Noah-MP selectors of the &noah_mp
namelist are read and checked. The default values are validated as part of the default suite. Of the
other values, dveg=7/8/9, opt_run=8 and opt_infdv=1/2/3 passed
24-hour comparisons; the rest are Experimental.
| Selector | Default | Accepted values |
|---|---|---|
dveg | 4 | 1–9 |
opt_crs, opt_sfc, opt_frz, opt_inf, opt_gla | 1 | 1, 2 |
opt_btr, opt_stc, opt_soil | 1 | 1–3 |
opt_run | 3 | 1–8 |
opt_rad | 3 | 1–3 |
opt_alb | 2 | 1, 2 |
opt_snf | 1 | 1–5 |
opt_tbot | 2 | 1, 2 |
opt_rsf | 1 | 1–4 |
opt_pedo | 1 | 1 only |
opt_crop | 0 | 0, 1 |
opt_irr, opt_irrm, opt_infdv | 0 | 0–3 |
opt_tdrn | 0 | 0–2 |
Crop, irrigation, tile drainage and groundwater options need the matching geography from WPS
(for example the groundwater fields for opt_run=5) and the original MPTABLE.TBL
parameters. Surface mosaic (sf_surface_mosaic=1) is not supported. The
Noah-MP options guide lists the inputs for each branch.
Lakes, cities, ocean and other surface options¶
The lake model, urban canopy models, the ocean mixed layer, SST updates and terrain-aware radiation are namelist features rather than physics selectors. Their status is on the namelist page.
Earlier releases¶
v0.3.4 and earlier ran a much smaller set of schemes; v0.3.3 and older could silently run the default schemes when a different one was requested. The v0.3.4 support matrix keeps that release's record.