Welcome to UFS stochastic physics’s documentation!¶
Getting Started¶
The stochastic physics currently only works with the UFS-atmosphere model
You should get the full system at https://github.com/ufs-community/ufs-weather-model, which will include the stochastic physics code.
In order to enable stochastic physics in a model run, you will need to turn it on via namelist options
Users Guide¶
The stochastic physics currently only works with the UFS-atmosphere model
Currently, 3 stochastic schemes are used operationally at NCEP/EMC: Stochastic Kinetic Energy Backscatter (SKEB; Berner et al., 2009), Stochastically Perturbed Physics Tendencies (SPPT; Palmer et al., 2009), and Specific Humidity perturbations (SHUM), which is inspired by Tompkins and Berner, 2008. In addition there is the ability to perturb certain land model/surface parameters (Gehne et al., 2019 and Draper 2021), and a cellular automata scheme (Bengtsson et al. 2019) which interacts directly with the convective parameterization.
SKEB adds wind perturbations to model state. Perturbations are random in space/time, but amplitude is determined by a smoothed dissipation estimate provided by the dynamical core. Addresses errors in the dynamics - more active in the mid-latitudes
SPPT multiplies the physics tendencies by a random number O [0,2] before updating the model state. Addresses error in the physics parameterizations (either missing physics or unresolved subgrid processes). It is most active in boundary layer and convective regions
SHUM multiply the low-level specific humidity by a small random number each time-step. It attempts to address missing physics (cold pools, gust fronts), most active in convective regions
Land surface perturbations allow for land surface parameters such as Albedo, Soil Hydraulic Conductivity, LAI, and roughness lengths to vary in space. Addresses error in the land model and land-atmosphere interactions. The perturbation options are only available to NOAH and RUC-LSM land models.
Due to the model’s numerics, any stochastic perturbation needs to be correlated in space and time in order to have the desired effect of upscale growth of the perturbations. This is achieved by creating a random pattern that has a specified decorrelation length-scale and is a first order auto-regressive process AR(1) in time with a specified decorrelation time-scale. (The CA random pattern generator also satisfies this condition)
Cellular automata is enabled through the physics namelist
Stochastic Paramter Perturbation (SPP) is avaiable for the FV3_HRRR physics suite
Stochastic Physics Namelist¶
General options¶
Option | Description |
---|---|
NEW_LSCALE | Recommended, set to true if use the correct calculation for decorrelation length scale. |
NTRUNC | Optional, Spectral resolution (e.g. T126) of random patterns, default is for model to determine proper truncation |
LAT_S | Optional, number of latitude points for the gaussian grid (must be even), default is for model to determine gaussian grid |
LON_S | Optional, number of longitude points for the gaussian grid (recommend 2xLAT_S, default is for model to determine gaussian grid |
STOCHINI | Optional, set to true if wanting to read in a previous random pattern |
SPPT options¶
Option | Description |
---|---|
SPPT | Amplitudes of random patterns. |
SPPT_TAU | Decorrelation timescales in seconds. |
SPPT_LSCALE | Decorrelation spatial scales in meters. |
SPPT_LOGIT | Should be true to limit the SPPT perturbations between 0 and 2. Otherwise model will crash. |
ISEED_SPPT | Seeds for setting the random number sequence (ignored if stochini is true) |
SPPT_SIGTOP1 | lower sigma level to taper perturbations to zero (default is 0.1) |
SPPT_SIGTOP2 | upper sigma level to taper perturbations to zero (default is 0.025) |
SPPT_SFCLIMIT | .T.=tapers the SPPT perturbations to zero at model’s lowest level (helps reduce model crashes) |
SPPTINT | Optional, interval in seconds to update random pattern. Perturbations still get applied every time-step |
USE_ZMTNBLCK | .T.=do not apply perturbations below the dividing streamline that is diagnosed by the gravity wave drag, mountain blocking scheme |
PERT_MP | .T.=apply SPPT perturbations to all microphysics specis. If .F. the SPPT is only applied to u,v,t,qv |
PERT_RADTEND | .T.=apply SPPT perturbations to cloudy sky radiation tendencies. If .F. then do not perturb any radiative tendencies |
PERT_CLDS | .T.=apply SPPT perturbations to fraction (only works for RRTMG radiation), if using this option set PERT_RADTEND=.F. |
SHUM options¶
Option | Description |
---|---|
SHUM | Amplitudes of random pattern. |
SHUM_TAU | Decorrelation timescales in seconds. |
SHUM_LSCALE | ecorrelation spatial scales in meters. |
SHUM_SIGEFOLD | e-folding lengthscale (in units of sigma) of specific humidity perturbations, default is 0.2) |
SHUMINT | Optional, interval in seconds to update random pattern. Perturbations still get applied every time-step |
ISEED_SHUM | Seeds for setting the random number sequence (ignored if stochini is true). |
SKEB options¶
Option | Description |
---|---|
SKEB | Amplitudes of random patterns. |
SKEB_TAU | Decorrelation timescales in seconds |
SKEB_LSCALE | Decorrelation spatial scales in meters (250) |
ISEED_SKEB | Seeds for setting the random number sequence (ignored if stochini is true). |
SKEBNORM | 0-random pattern is stream function, 1-pattern is K.E. norm, 2-pattern is vorticity (default is 0) |
SKEB_VARSPECT_OPT | 0-gaussian (default), 1-power law (not tested) |
SKEB_NPASS | number of passes of the del2 smoothing for the dissipation estimate (default is 11, minimum is 3) |
SKEB_VDOF | the number of degrees of freedom in the vertical for the SKEB random pattern (default is 5) |
SKEB_SIGTOP1 | lower sigma level to taper perturbations to zero (default is 0.1) |
SKEB_SIGTOP2 | upper sigma level to taper perturbations to zero (0.025) |
SKEBINT | Optional, interval in seconds to update random pattern. Perturbations still get applied every time-step |
SPP options¶
Option | Description |
---|---|
SPP_VAR_LIST | List of parameterizations to be perturbed. Check compns_stochy.F90 for options. |
SPP_PRT_LIST | SPP perturbation magnitudes used in each parameterization. |
SPP_TAU | Decorrelation timescales in seconds. |
SPP_LSCALE | Decorrelation spatial scales in meters. |
ISEED_SPP | Seeds for setting the random number sequence (ignored if stochini is true). |
SPP_SIGTOP1 | Lower sigma level to taper perturbations to zero (default is 0.1) |
SPP_SIGTOP2 | Upper sigma level to taper perturbations to zero (0.025) |
SPP_STDDEV_CUTOFF | Limit for possible perturbation values in standard deviations from the mean. |
Land perturbation options¶
Option | Description |
---|---|
LNDP_TYPE | 0, no perturbations. 1, old scheme (Gehne et al. 2019); 2, new scheme (Draper 2021) |
LNDP_VAR_LIST | List of land perturbations parameters. Check compns_stochy.F90 for options |
LNDP_PRT_LIST | Perturbation magnitudes used for each parameter perturbations. |
LNDP_TAU | Decorrelation timescales in seconds. |
LNDP_LSCALE | Decorrelation spatial scales in meters. |
ISEED_LNDP | Seeds for setting the random number sequence (ignored if stochini is true). |
Developer’s guide¶
Code is housed on github at https://github.com/noaa-psd/stochastic_physics. Please read more about the Development process at https://github.com/ufs-community/ufs/wiki/Developing-with-Gitflow.
Please make a fork and checkout the entire ufs-community weather model at https://github.com/ufs-community/ufs-weather-model and point to your fork of the stochastic_physics submodule.
Standalone testing¶
If you intend to make modifications to the stochastic physics source code, there is a simplified program that exercises the random pattern generator without needing to run the entire model. Please see README.standalone in the stochastic_physics directory.
Full model tests¶
The code updates are not expected to change existing results, so the full model regression tests need to be run. All of the tests must pass, although only a sub-set of tests are needed to consider adding changes to the stochastic_physics repository: fv3_control, fv3_stochy, fv3_ccpp_control, and fv3_ccpp_stochy. If the results are expected to change, then there needs to be scientific evidience that the change in results are what is expected.
References¶
Bengtsson, L., J. Dias, M. Gehne, P. Bechtold, J. Whitaker, 2019: Convectively Coupled Equatorial Wave Simulations Using the ECMWF IFS and the NOAA GFS Cumulus Convection Schemes in the NOAA GFS Model. Mon. Wea. Rev. 147, 4005 - 4025, doi:10.1175/MWR-D-19-0195.1
Berner, J., G. Shutts, M. Leutbecher, and T. Palmer, 2009: A spectral stochastic kinetic energy backscatter scheme and its impact on flow- dependent predictability in the ECMWF ensemble prediction system. J. Atmos. Sci., 66, 603–626, doi:10.1175/2008JAS2677.1
Draper, C., 2021: Accounting for Land Model Uncertainty in Numerical Weather Prediction Ensemble Systems: Toward Ensemble-Based Coupled Land–Atmosphere Data Assimilation. J. Hydromet., 22, 2089–2104, doi:10.1175/JHM-D-21.0016.1
Gehne, M., T. Hamill, G. Bates, P. Pegion, W. Kolczynski 2019: Land-surface parameter and state perturbations in the Global Ensemble Forecast System. Mon. Wea. Rev. 147, 1319–1340 doi:10.1175/MWR-D-18-0057.1
Palmer, T. N., R. Buizza, F. Doblas-Reyes, T. Jung, M. Leutbecher, G. J. Shutts,M. Steinheimer, and A.Weisheimer, 2009: Stochastic parametrization and model uncertainty. ECMWF Tech. Memo. 598, 42 pp doi:10.21957/ps8gbwbdv
Tompkins, A. M., and J. Berner, 2008: A stochastic convective approach to account for model uncertainty due to unresolved humidity variability. J. Geophys. Res., 113, D18101, doi:10.1029/2007JD009284