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

Spectral- vs. Grid Nudging Namelist Options

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.


New member
Dear Sir or Madam,

I am interested in running a WRF simulation with spectral nudging of temperature above the PBL and wind along the full column, following Gomez and Miguez-Macho (2017).

When I look at the namelist option documentation at ( it is unclear to me whether the options under the grid nudging section are also applicable to spectral nudging. For example, I don't see a specific option under spectral nudging to turn nudging of temperature off in the PBL. If you could point me to an example namelist, I would be appreciative.

Thank you.
In order to turn on spectral nudging, you will need to set grid_fdda = 2 (for each domain). The option to turn off nudging of temperature in the PBL is
if_no_pbl_nudging_t. Setting that to 1 turns it on, meaning that it will not nudge temperature in the PBL. There are similar options for UV winds, PH, and q. Take a look at this example namelist for a spectral nudging exercise for our WRF tutorial:

If you need to know the description of any of those namelist options, you can find them in the WRF/run/README.namelist file (or in the WRF/Registry/Registry.EM_COMMON file).
Those options listed in &fdda are applicable to spectral nudging. For example, you may specify the options

if_no_pbl_nudging_t (max_dom) = 1 to turn off T nudging in the PBL

Ming Chen

I would like to follow-up on this question. I am applying spectral nudging to a simulation and am also interested in not nudging variables within the PBL. As provided in the WRF tutorial example and the README.namelist file, we can turn off spectral nudging within the PBL using:

if_no_pbl_nudging_uv = 1
if_no_pbl_nudging_t = 1
if_no_pbl_nudging_q = 1
if_no_pbl_nudging_ph = 1

But, there are also the following namelist options which are by default set to spectral nudge in all layers:

if_zfac_uv = 0 (default) *nudge uv in all layers
if_zfac_t = 0 (default)
if_zfac_ph = 0 (default)
if_zfac_q = 0 (default)

Question 1--> If these are by default set to nudge in all layers, would they override the settings for no nudging in the pbl (if_no_pbl_nudging_uv=0)? I am unclear as to the differences between these two namelist options and what takes precedence in spectral nudging.

The following variables are also listed under spectral nudging:

k_zfac_uv = 0 (model level below which nudging is switched off for water uv)
dk_zfac_uv = 0 (depth in *k* between k_zfac_uv to dk_zfac_uv where nudging increases linearly to full strength)

Question 2--> What does "k" mean in dk_zfac_uv and similar terms? This is described as a depth in "k" in the README.namelist.
Liu et al (2017) [WRF 13-year simulations] states that they ramped up spectral nudging at 5 model levels above the approximate pbl, which is what I am trying to do.
start nudging from the approximate PBL top, linearly increasing to the full strength at the 5th level above the PBL

Question 3--> How can I turn off q nudging at all levels? Is that by setting gq=0?

Sorry for all the questions! Thank you so much in advance for your help!
Hi Maria,

1) It looks like the code (phys/module_fdda_spnudging.F) first checks if if_no_pbl_nudging_* is set. If they are set to 1, then the weighting function (wpbl) will be set to 0 in the PBL. If those are set to 0, THEN the switches for if_zfac_* are checked, and the weighting function is computed based on the namelist specified k values, so setting if_no_pbl_nudging_* overrides any settings for if_zfac_*.

2) "k" in these parameters specifies the vertical level number. So for example, if you have 32 vertical levels, then the first level (closest to the ground) is level 1, and then it goes up from there. I agree that the description in the README file is not clear. I'll make a note to update this for future code releases.

3) Yes, setting gq = 0 should turn off all q nudging.

Let me know if I haven't answered anything completely!