Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Stochastic methods and random perturbations

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


I'm trying to figure out the best way to run an ensemble using multiple stochastic methods initialized at the same time. Would it suffice to set rand_perturb=1 on the domains of interest and set nens to a different value for each member? It seems that I don't need to set iseed_* if I am not concerned about different initial times having the same random pattern. Is this the best approach for maximizing ensemble spread? Thank you.
Have look at the stochastic section of the WRFV user guide:

There are three stochastic parameterization schemes available: SKEBS, SPPT and SPP.
For maximal spread, switch them all on (note that the stochastic parameter perturbation scheme SPP perturbs only certain physic's schemes
-- as documented --, so it won't do anything if you chose other physics schemes).

sppt = 1,1,1
skebs = 1,1,1
spp =1,1,1

It is correct, that you you will get different random number streams for all schemes if you change nens for each ensemble member.
The iseed* is if you want to keep some random number streams the same, but change others (which is not what you want for maximal spread).

Please note that while stochastic parameter schemes are an effective and easy way to create an ensemble from a single initialization, they are designed to represent model error and not initial condition error, so might underestimate the forecast uncertainty.
Thanks for the information. A few more questions:
  • I've got rand_perturb turned on for all domains. Do I even need it? With it and all of the stochastic schemes turned on, I'm seeing about a 30% performance hit. Any way to regenerate rand_perturb less frequently than every time step?
  • For the case I'm running, a strongly synoptically forced event, I am seeing unphysically large surface winds in some of the runs. This occurs on all domains and seems to be driven by the outermost domain (18 km grid). Any suggestions for limiting the amount of feedback?
  • One of the methods mentioned in the Users' Guide, perturb_bdy, is not recognized by WRF.