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

Spurious waves with constant dz and small dt

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
A colleague noticed a strange and undesirable behavior in which I was able to reproduce in 4.1.3. Briefly, waves with a wavelength of about 2km appear in the upper part of the domain when we set a constant dz there, but apparently not when dz keeps changing (and also dz > dx). The waves can reach amplitudes of +/-30m/s, depending inversely on the time step, i.e., larger amplitude for smaller time step. An example is attached where dx=500m, dt=1s, and dz_top=700m. There is no thermal perturbation in the domain, so these grow purely from noise or something else.

For the same sounding, a constantly-changing dz does *not* result in these waves (second plot of W, with max value ~1mm/s), and also a larger time step makes them much smaller. A plot comparing two sets of dz and eta levels is also attached. There is also a layer of constant dz at the surface, but nothing obvious happens there, perhaps because dz < dx.

Looks like some kind of pathology, but we are stumped as to what. It seems not to care about 6th-order filtering or km_opt (it's in a stable layer). There is no obvious physical reason for constant dz to be a problem.

I can supply wrfinputs/wrfouts for these for testing, too. I used a customized ideal init routine to use designated z-levels for initialization. We get the same results if the same eta levels are used with the default WK sounding.

Any ideas? For the time being we will probably just not use constant dz at top.

Ted Mansell (and Derek Stratman)


  • n67waves.png
    338 KB · Views: 1,714
  • wrf-waves_z_dz.pdf
    20 KB · Views: 63
  • wrf-waves_znw.pdf
    17.3 KB · Views: 69
  • n67nowaves.png
    330.8 KB · Views: 1,714
Adding to what Ted already described...

I found that the undesirable waves are alleviated when the sound time step is sufficiently decreased. For example, using dt=1s with dt_s=6 steps results in the large-amplitude waves. However, decreasing dt_s to 2 steps while keeping dt=1s alleviates these waves.

Hopefully this result provides more clues as to where the issue may exist.

Derek Stratman
Would you please turn on the option diff_6th_opt = 2, 2, 2 and probably try diff_opt = 1, 1 ? diff_6th_opt can effectively remove 2DX waves.
Thanks for the response, Ming. We have already tested the 6th-order filter as noted above. The waves are not 2*dx, but seem to be about 2-km wavelength for dx of either 250m or 500m, so they are on the resolved scale.

The key seems to be number of sound waves steps. Even with dt=5, I can set time_step_sound large enough (somewhere between 12 and 20) to cause the waves to appear and cause model instability. It seems there could be a bug or error in the small time step that is being triggered here when dx < dz and dz = constant.

We can try periodic BCs to see if it is an open BC issue.

-- Ted
I will talk to our expert and see whether they have any ideas what is going on. I will get back to you if I have updates about this issue.
A test with doubly-periodic BCs only has weak vertical plane waves if there is no initial perturbation. But with a small (0.5 degree) thermal perturbation (bubble in the boundary layer), the spurious waves appear and again make the model unstable. Perhaps it is a clue that there needs to be some perturbations to U and/or V for the waves to appear? In the case of open BCs, noise from the BCs must have been providing this in the absence of any other perturbation.

-- Ted