How to realize the TVPDS method to add large-scale nudging in idealized simulation

Mingling

New member
Onderlinde, M. J. and D. S. Nolan (2017), The tropical cyclone response to changing wind shear using the method of time-varying point-downscaling, J. Adv. Model. Earth Syst., 9, 908–931, doi:10.1002/2016MS000796.

I want to add vertical wind shear in my idealized WRF simulation. However, this paper didn't say clearly and I don't know where to modify "pert_coriolis".

1783425389559.png
 
Hi, pert_coriolis is set in the namelist.input file in the &dynamics record. By default it is set to .false., so to turn it on, set it to .true.
 
Thanks for your reply. However, according to the paper, if we want to add background winds in domain, we should also add a forcing term into the u-momentum equation and v-momentum equation? like this fomula:

1784447487452.png
Now I add the codes (marked by orange bold) into module_big_step_utilities_em.F. But I am not clear if it matchs the TVPDS method proposed by Onderlinde and Nolan (2017).
DO k=kts,ktf
DO i = i_start, i_end
ru_tend(i,k,j)=ru_tend(i,k,j) + (msfux(i,j)/msfuy(i,j))*0.5*(f(i,j)+f(i-1,j)) &
*0.25*(rv(i-1,k,j+1)+rv(i,k,j+1)+rv(i-1,k,j)+rv(i,k,j)) &
- 0.5*(e(i,j)+e(i-1,j))*0.5*(cosa(i,j)+cosa(i-1,j)) &
*0.25*(rw(i-1,k+1,j)+rw(i-1,k,j)+rw(i,k+1,j)+rw(i,k,j))
ru_tend(i,k,j) = ru_tend(i,k,j) - ru(i,k,j)/(sec_p_h*tao)
ENDDO
ENDDO

DO j=j_start, j_end
DO k=kts,ktf
DO i=its,MIN(ide-1,ite)

rv_tend(i,k,j)=rv_tend(i,k,j) - (msfvy(i,j)/msfvx(i,j))*0.5*(f(i,j)+f(i,j-1)) &
*0.25*(ru(i,k,j)+ru(i+1,k,j)+ru(i,k,j-1)+ru(i+1,k,j-1)) &
+ (msfvy(i,j)/msfvx(i,j))*0.5*(e(i,j)+e(i,j-1))*0.5*(sina(i,j)+sina(i,j-1)) &
*0.25*(rw(i,k+1,j-1)+rw(i,k,j-1)+rw(i,k+1,j)+rw(i,k,j))
rv_tend(i,k,j) = rv_tend(i,k,j) - rv(i,k,j)/(sec_p_h*tao)
ENDDO
ENDDO
ENDDO
 
In my understanding, to realize smoothly adding background wind field into the domain, we should do two things simultaneously:

(1) Subtract the of Coriolis effect of u_ref, v_ref (i.e., PDS):

ru(i,k,j) = ru_in(i,k,j) - (c1h(k)*muu(i,j)+c2h(k))*u_ref(i,k,j)
ru_tend(i,k,j)=ru_tend(i,k,j) + (msfux(i,j)/msfuy(i,j))*0.5*(f(i,j)+f(i-1,j)) &
*0.25*(rv(i-1,k,j+1)+rv(i,k,j+1)+rv(i-1,k,j)+rv(i,k,j))
(2) Add momentum forcing to the u/v momentum tendency:
1784459210083.png

ru_tend(i,k,j) = ru_tend(i,k,j) - ru(i,k,j)/(tao)
And then, if we want to add background wind, we just activate "pert_coriolis = .true.". After 24-h nudging interval ,we just set "pert_coriolis = .false." and restart? So, after the nudging interval, we no longer need to substract the coriolis effect of background winds?

Base on my understanding,I have modified the SUBROUTINE perturbation_coriolis in module_big_step_utilities_em.F. But I am not clear if I am right.
 

Attachments

Hi, Apologies for the delay. I reached out to a colleague who is more of an expert in this area. This is their response:

Is the added wind horizontally uniform? It may be easier if it is.
u_base, v_base and z_base define the geostrophic wind and are normally constant but probably could be varied to be consistent.
 
Thanks for your reply. I want to add horizontally non-uniform wind field, and now I am using the spectual nudging method in WRF fdda module to drive the simulation. In this case, as I simutanoeously nudging u/v wind, theta and geopotential (they are balanced in my algorithm), I don't need to substract background wind in coriolis force, am I right?
 
Back
Top