regarding e_vert.

Discuss advection schemes, timestepping, pressure gradients, coordinates, etc.

regarding e_vert.

Postby sangeeta » Tue Apr 30, 2013 7:23 am

Dear WRF user.
I have assigned e_vert=34 in namelist .input file. Few lines from my ncl script are as follows.
Z = wrf_user_getvar(f,"height", -1) ;m Model Height
Zter = wrf_user_getvar(f,"ter" , -1) ;m Terrain Height
Zcat = Z(:,0:nlvmax-1,:,:)

do kk = 0, nlvmax-1
Zcat(:,kk,:,:) = Zcat(:,kk,:,:) - Zter
end do
The output of print(Zcat(0,:,30,30))
(0) 28.71704
(1) 98.72571
(2) 194.1732
(3) 315.7405
(4) 468.2449
(5) 659.7825
(6) 894.2607

The output of print(Zcat(0,:,20,20))
(0) 28.92761
(1) 99.46729
(2) 195.4598
(3) 316.7394
(4) 468.5546
(5) 663.197
(6) 903.4503

The output of print(Zcat(0,:,40,40))
(0) 27.84656
(1) 95.62097
(2) 187.7159
(3) 304.5018
(4) 451.3499
(5) 638.8979
(6) 870.2178

Looking into above output, I had a impression that ,among 34 different vertical levels, 1st level is around 27m above the ground, 2nd level is around 100m above ground and so on. Am I having correct impression???

Actually , I want to have data readings at 10m ,20m, 30m ,40m and 50m above the ground. For such case ,how should I manage e_vert or do we have any other parameters to get data readings at such height.

Any help on it will be appreciated.

Sangeeta Maharjan.
Posts: 25
Joined: Mon Feb 04, 2013 5:16 am

Re: regarding e_vert.

Postby AchternDiek » Tue Apr 30, 2013 9:18 am

27 m as a height for the first WRF model level and 100 m for the second sound like reasonable and typical values. So, yes, I assume you have the correct impression.

Having the model levels at exactly 10m, 20m, 30m, and so forth will not be possible, since WRF model levels are terrain following hydrostatic pressure levels.

I would say your best option is to take the data at the model levels and interpolate to 10m, 20m, 30m.
Posts: 147
Joined: Wed Jun 06, 2012 6:10 am
Location: Norway

Re: regarding e_vert.

Postby sangeeta » Sun May 05, 2013 5:09 am

AchternDiek wrote:I would say your best option is to take the data at the model levels and interpolate to 10m, 20m, 30m.

thanks for your reply.I tried to interpolate my data(its my very first attempt),my script is
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"

; Set some basic resources
res = True
res@MainTitle = "REAL-TIME WRF"
res@Footer = False

times = wrf_user_list_times(a) ; get times in the file
ntimes = dimsizes(times) ; number of times in the file

; The specific height levels that we want the data interpolated to.
height_levels = (/ 10., 50./) ; height levels to plot - in meter
nlevels = dimsizes(height_levels) ; number of height levels

do it = 0,ntimes-1 ; TIME LOOP
print("Working on time: " + times(it) )
res@TimeLabel = times(it) ; Set Valid time to use on plots

; First get the variables we will need
tc = wrf_user_getvar(a,"tc",it) ; T in C
u = wrf_user_getvar(a,"ua",it) ; u averaged to mass points
v = wrf_user_getvar(a,"va",it) ; v averaged to mass points
p = wrf_user_getvar(a, "pressure",it) ; pressure is our vertical coordinate
z = wrf_user_getvar(a, "z",it) ; grid point height
rh = wrf_user_getvar(a,"rh",it) ; relative humidity

level = 1 ; just one level for the georeferenced plot
height = height_levels(level)

p_plane = wrf_user_intrp3d( p,z,"h",height,0.,False)
tc_plane = wrf_user_intrp3d(tc,z,"h",height,0.,False)
rh_plane = wrf_user_intrp3d(rh,z,"h",height,0.,False)
u_plane = wrf_user_intrp3d( u,z,"h",height,0.,False)
v_plane = wrf_user_intrp3d( v,z,"h",height,0.,False)

end do ; END OF LOOP

As I execute the script,I found each tc_plane is assigned with _FillValue ( 9.96921e+36). same with rest of the variables.

Need Help.
Sangeeta Maharjan.
Posts: 25
Joined: Mon Feb 04, 2013 5:16 am

Re: regarding e_vert.

Postby Phillip » Mon May 06, 2013 6:49 am

I think you can't just use the normal interpolation routine when interpolating below the lowest model level (since it would actually have to EXTRApolate!). Instead, use surface vales and try to find a suitable method of interpolation, e.g. Eckman Spiral for Wind etc... AFAIK you'll have to do this yourself, not sure if there are any scripts available which do exactly that.

However, you can change the location of your eta-levels in the namelist, at least for real data runs.

eta_levels = array of numbers between 0 and 1
See here for information on the eta coordinate: ... coordinate
Using very high vertical resolution above the ground can require a very very short time step (cfl violations will tell you).

Just changing the amount of levels will NOT change the lowest 8 levels, as their locations are determined in the code of WRF (module_initialize_real.F).
Posts: 46
Joined: Thu Jul 19, 2012 3:29 am

Return to Dynamics and Numerics

Who is online

Users browsing this forum: No registered users and 1 guest