A collection of diagnostic and interpolation routines for use with output from the Weather Research and Forecasting (WRF-ARW) Model.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

100 lines
4.0 KiB

C ***************************************************************
C * Storm Relative Helicity (SRH) is a measure of the *
C * streamwise vorticity within the inflow environment of a *
C * convective storm. It is calculated by multiplying the *
C * storm-relative inflow velocity vector (Vh-C) by the *
C * streamwise vorticity (Zh) and integrating this quantity *
C * over the inflow depth (lowest 1-3 km layers above ground *
C * level). It describes the extent to which corkscrew-like *
C * motion occurs (similar to the spiraling motion of an *
C * American football). SRH corresponds to the transfer of *
C * vorticity from the environment to an air parcel in *
C * convective motion and is used to predict the potential *
C * for tornadic development (cyclonic updraft rotation) in *
C * right-moving supercells. *
C * *
C * There is no clear threshold value for SRH when forecasting *
C * supercells, since the formation of supercells appears to be *
C * related more strongly to the deeper layer vertical shear. *
C * Larger values of 0-3-km SRH (greater than 250 m**2/s**2) *
C * and 0-1-km SRH (greater than 100 m**2/s**2), suggest an *
C * increased threat of tornadoes with supercells. For SRH, *
C * larger values are generally better, but there are no clear *
C * "boundaries" between non-tornadic and significant tornadic *
C * supercells. *
C * *
C * SRH < 100 (lowest 1 km): cutoff value *
C * SRH = 150-299: supercells possible with weak tornadoes *
C * SRH = 300-499: very favorable to supercell development and *
C * strong tornadoes *
C * SRH > 450 : violent tornadoes *
C ***************************************************************
C NCLFORTSTART
subroutine dcalrelhl(u, v, ght, ter, top, sreh, miy, mjx, mkzh)
implicit none
integer miy, mjx, mkzh
double precision u(miy,mjx,mkzh), v(miy,mjx,mkzh),
& ght(miy,mjx,mkzh),top,ter(miy,mjx),
& sreh(miy,mjx)
C NCLEND
C
C This helicity code was provided by Dr. Craig Mattocks, and
C verified by Cindy Bruyere to produce results equivalent to
C those generated by RIP4. (The code came from RIP4?)
C
double precision pi, dtr, dpr
double precision dh, sdh, su, sv, ua, va, asp, adr, bsp, bdr
double precision cu, cv, x, sum
integer i, j, k, k10, k3, ktop
parameter (pi=3.14159265d0, dtr=pi/180.d0, dpr=180.d0/pi)
do 15 j = 1, mjx-1
do 15 i = 1, miy-1
sdh = 0.d0
su = 0.d0
sv = 0.d0
k3 = 0
k10 = 0
ktop = 0
do 6 k = mkzh, 2, -1
if (((ght(i,j,k) - ter(i,j)) .gt. 10000.d0) .and.
& (k10 .eq. 0)) then
k10 = k
go to 8
endif
if (((ght(i,j,k) - ter(i,j)) .gt. top) .and.
& (ktop .eq. 0)) ktop = k
if (((ght(i,j,k) - ter(i,j)) .gt. 3000.d0) .and.
& (k3 .eq. 0)) k3 = k
6 continue
8 continue
if (k10 .eq. 0) k10=2
do k = k3, k10, -1
dh = ght(i,j,k-1) - ght(i,j,k)
sdh = sdh + dh
su = su + 0.5d0*dh*(u(i,j,k-1)+u(i,j,k))
sv = sv + 0.5d0*dh*(v(i,j,k-1)+v(i,j,k))
enddo
ua = su / sdh
va = sv / sdh
asp = sqrt(ua*ua + va*va)
if (ua .eq. 0.d0 .and. va .eq. 0.d0) then
adr = 0.d0
else
adr = dpr * (pi + atan2(ua,va))
endif
bsp = 0.75d0 * asp
bdr = adr + 30.d0
if (bdr .gt. 360.d0) bdr = bdr-360.d0
cu = -bsp * sin(bdr*dtr)
cv = -bsp * cos(bdr*dtr)
sum = 0.d0
do 12 k = mkzh-1, ktop, -1
x = ((u(i,j,k)-cu) * (v(i,j,k)-v(i,j,k+1))) -
& ((v(i,j,k)-cv) * (u(i,j,k)-u(i,j,k+1)))
sum = sum + x
12 continue
sreh(i,j) = -sum
15 continue
end