wrf_gpu

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

StatusMeaning
DefaultPart 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 hRuns 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 hAs above, but the accepted comparison covers six forecast hours.
ExperimentalRuns 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 onlyImplemented and checked on the CPU; a GPU run refuses it.
Python API onlyUsable from Python with extra land inputs; gpuwrf run refuses it.
Not supportedgpuwrf run stops before the forecast with a message that names the option.

Notes used in the tables:

  1. 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.
  2. Needs the Triton 3.6 compiler (pip install "triton==3.6.*"). The code-quality scan of its compiled GPU code could not be completed.
  3. Runs, but cannot be validated: the original WRF crashes on the test case at its first output. Use it with cu_physics=0.
  4. 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.

What a pass does and does not cover

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=4 with sf_sfclay_physics=4.
  • TEMF: bl_pbl_physics=10 with sf_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=5 and ra_sw_physics=5 together, with Thompson microphysics and use_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

CodeSchemeStatus
0no microphysicsValidated 24 h
1Kessler warm-rainValidated 24 h1
2Lin et al. (Purdue-Lin)Validated 24 h1
3WSM3 simple-iceValidated 24 h
4WSM5Validated 24 h1
5Ferrier (new Eta), HRWValidated 24 h
6WSM6 graupelValidated 24 h1
7Goddard 4-iceValidated 24 h
8ThompsonDefault
9Milbrandt-Yau 2-momentValidated 24 h1
10Morrison 2-momentValidated 24 h1
11CAM 5.1 microphysicsValidated 24 h2
13SBU-YLinValidated 24 h1
14WDM5Validated 24 h1
15Ferrier-Aligo advected rimeExperimental3
16WDM6Validated 24 h1
17NSSL (legacy)Validated 24 h1
18NSSL 2-moment 4-ice w/ predicted CCNValidated 24 h1
19NSSL one-moment with hailValidated 24 h1
21NSSL one-moment without hailValidated 24 h1
22NSSL two-moment without hailValidated 24 h1
24WSM7 (separate hail/graupel)Validated 24 h
26WDM7 (separate hail/graupel)Validated 24 h1
27UDM 7-classNot supported
28aerosol-aware Thompson (water/ice-friendly)Validated 24 h1
29RCON (Thompson aerosol-aware, liquid-phase mods)Not supported
30HUJI spectral-bin (fast)Not supported
32HUJI spectral-bin (full)Not supported
38Thompson w/ 2-moment graupel/hailValidated 24 h1
40Morrison 2-moment w/ CESM-NCSU RCP4.5 aerosolValidated 24 h1
50P3 1-ice, 1-moment cloud waterValidated 24 h
51P3 1-ice + double-moment cloud waterValidated 24 h
52P3 2-ice + double-moment cloud waterValidated 24 h
53P3 1-ice 3-moment + double-moment cloud waterValidated 24 h
55Jensen-ISHMAELValidated 24 h1
56NTU multi-momentValidated 24 h1
95Ferrier (old Eta)Not supported
96MadwrfNot supported
97Goddard GCEValidated 24 h1

Cumulus cu_physics

CodeSchemeStatus
0no cumulusValidated 24 h
1Kain-Fritsch (new Eta)Default
2Betts-Miller-Janjic (BMJ)Validated 24 h1
3Grell-Freitas ensembleValidated 24 h
4Scale-aware GFS SASNot supported
5Grell 3D ensembleValidated 24 h1
6Modified TiedtkeValidated 24 h1
7Zhang-McFarlane (CAM5)Experimental4
10Modified Kain-Fritsch (PDF trigger)Validated 24 h
11Multi-scale Kain-Fritsch (MSKF)Validated 24 h
14KIM Simplified Arakawa-Schubert (KSAS)Validated 24 h1
16New TiedtkeValidated 24 h1
93Grell-Devenyi ensembleValidated 24 h
942015 GFS SAS (HWRF)Validated 24 h1
95previous GFS SAS (HWRF)Validated 24 h1
96previous new GFS SAS (YSU)Validated 24 h1
99previous Kain-FritschValidated 24 h1

Planetary boundary layer bl_pbl_physics

CodeSchemeStatus
0no boundary-layerValidated 24 h
1YSUValidated 24 h1
2Mellor-Yamada-Janjic (MYJ) TKEValidated 24 h1
3Hybrid EDMF GFS (ACM-GFS)Validated 24 h
4QNSE-EDMF (Quasi-Normal Scale Elimination)Validated 24 h1
5MYNN TKEDefault
7ACM2 (Pleim)Validated 24 h1
8Bougeault-Lacarrere (BouLac)Validated 24 h1
9UW (CAM5)Validated 24 h
10TEMF (Total Energy Mass Flux)Validated 24 h1
11Shin-Hong scale-awareValidated 24 h1
12Grenier-Bretherton-McCaaValidated 24 h1
16TKE + TKE-dissipation (epsilon)Validated 24 h1
17TKE + TKE-dissipation + TPEValidated 24 h1
99MRFValidated 24 h1

Surface layer sf_sfclay_physics

CodeSchemeStatus
0no surface-layerValidated 24 h
1revised MM5 Monin-ObukhovValidated 24 h1
2Monin-Obukhov (Janjic Eta)Validated 24 h1
3NCEP GFS surface layerValidated 24 h
4QNSE surface layerValidated 24 h1
5MYNN surface layerDefault
7Pleim-Xiu surface layerValidated 24 h
10TEMF surface layerValidated 24 h1
91old MM5 surface layerValidated 24 h1

Land surface sf_surface_physics

CodeSchemeStatus
0no surface temp predictionValidated 24 h
1thermal diffusion (5-layer slab)Python API only
2Unified Noah LSMPython API only
3RUC LSMValidated 24 h
4Noah-MP LSMDefault
5CLM4 (Community Land Model v4)Not supported
6CTSM (Community Terrestrial Systems Model)Not supported
7Pleim-Xiu LSMPython API only
8SSiB (Simplified Simple Biosphere)Validated 24 h1

Longwave radiation ra_lw_physics

CodeSchemeStatus
0no longwave radiationValidated 24 h
1RRTMValidated 24 h1
3CAMValidated 24 h
4RRTMGDefault
5Goddard longwaveValidated 6 h
7FLG (UCLA)CPU only
14RRTMG-K (KIAPS)Not supported
24fast RRTMG (GPU/MIC)Not supported
31Earth Held-Suarez forcingValidated 24 h
99GFDL (Eta) longwave (semi-supported)CPU only

Shortwave radiation ra_sw_physics

CodeSchemeStatus
0no shortwave radiationValidated 24 h
1DudhiaValidated 24 h1
2Goddard shortwaveValidated 24 h1
3CAMValidated 24 h
4RRTMGDefault
5Goddard shortwave (new)Validated 6 h
7FLG (UCLA)CPU only
14RRTMG-K (KIAPS)Not supported
24fast RRTMG (GPU/MIC)Not supported
99GFDL (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.

SelectorDefaultAccepted values
dveg41–9
opt_crs, opt_sfc, opt_frz, opt_inf, opt_gla11, 2
opt_btr, opt_stc, opt_soil11–3
opt_run31–8
opt_rad31–3
opt_alb21, 2
opt_snf11–5
opt_tbot21, 2
opt_rsf11–4
opt_pedo11 only
opt_crop00, 1
opt_irr, opt_irrm, opt_infdv00–3
opt_tdrn00–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.