Question involving vertical interpolation

From: Justin Traiteur <jtraite2_at_nyahnyahspammersnyahnyah>
Date: Wed May 19 2010 - 15:04:34 MDT

I put together a ncl code displaying WRF SCM output. This code displays height (y-axis) vs potential temperature (x-axis) and height (y-axis) vs wind speed (x-axis) for the center of the grid. I know that WRF uses eta coordinates for the vertical. My question is whether the way I derived height from the model and plotted it against the two variables aformentioned is correct or do I need to perform a wrf_interp function instead. Below is a copy of the code.

; SCM: Single Column Model
; WRF SCM: time-eta cross section.
;********************************************************
; %> ncl_filedump wrfout_SCM.nc | less
; netcdf wrfout_CSM {
; dimensions:
; Time = UNLIMITED ; // (60 currently)
; DateStrLen = 19 ;
; west_east = 2 ;
; south_north = 2 ;
; bottom_top = 59 ;
; bottom_top_stag = 60 ;
; soil_layers_stag = 4 ;
; west_east_stag = 3 ;
; force_layers = 8 ;
; south_north_stag = 3 ;
; [SNIP]
; 2x2 west-east/south_north values
; 3x3 west_east_stag/south_north_stag values
; 60 time steps
; 59 or 60 vertical levels
;********************************************************
; Variables are on different spatial grids.
;
; User *must* look!
;
; float U(Time, bottom_top, south_north, west_east_stag)
; float V(Time, bottom_top, south_north_stag, west_east)
; float W(Time, bottom_top_stag, south_north, west_east)
; float PH(Time, bottom_top_stag, south_north, west_east)
;********************************************************
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRF_contributed.ncl" ; WRF_Times2Udunits_c

begin

  diri = "../"
  fili = "wrfout.nc"
  f = addfile (diri+fili, "r") ;Load file
  
  pltType = "x11" ;Use x11 for plotting
  wks = gsn_open_wks(pltType,"plt_Surface1") ;Open workstation

  res = True
  res@MainTitle = "SCM WRF"
  res@Footer = False
  pltres = True
  mpres = True
  
;********************************************************
  ;res@TimeLabel = times(it)

  times = wrf_user_list_times(f)
  it = 20
  res@TimeLabel = times(it)

;********************************************************
  plot = new (2,"graphic")
  theta = wrf_user_getvar(f,"theta",it)
  thetan1 = theta((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),0,0)
  thetan2 = theta((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),0,1)
  thetan3 = theta((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),1,0)
  thetan4 = theta((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),1,1)
  
  thetan5 = (thetan1 + thetan2)/2
  thetan6 = (thetan3 + thetan4)/2
  thetan7 = (thetan5 + thetan6)/2

  z = wrf_user_getvar(f,"z",it)
  printVarSummary(z)
  zn = z((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),0,0)
  printVarSummary(zn)
  printVarSummary(theta)
  u1 = f->U(it,(/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),0,1)
  u2 = f->U(it,(/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),1,1)

  v1 = f->V(it,(/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),1,0)
  v2 = f->V(it,(/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40/),1,1)
  u3 = (u1 + u2)/2
  v3 = (v1 + v2)/2
  spd = sqrt(u3*u3+v3*v3)
  printVarSummary(spd)

  res = True ; plot mods desired
  res@tiMainString = "WRF SCM THETA" ; title
  res@tiYAxisString = "Height (m)" ; y axis title
  res@tiXAxisString = "Potential Temperature (K)" ; x axis title

  res@xyLineColors = (/"red"/) ; line colors
  res@xyLineThicknesses = 3.0 ; line thicknesses
  res@TimeLabel = times(it)
  

  opts = res
  opts@cnLineColor = "Red"
  plot(0) = gsn_xy(wks,thetan7,zn,res)
  delete(opts)
  delete(res)
  

  res = True ; plot mods desired
  res@tiMainString = "WRF SCM Wind Speed" ; title
  res@tiYAxisString = "Height (m)" ; y axis title
  res@tiXAxisString = "Speed (m/s)" ; x axis title

  res@xyLineColors = (/"blue"/) ; line colors
  res@xyLineThicknesses = 3.0 ; line thicknesses
  res@TimeLabel = times(it)

  plot(1) = gsn_xy(wks,spd,zn,res)
  gsn_panel(wks,plot,(/1,2/),res)

end
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Wed May 19 15:04:42 2010

This archive was generated by hypermail 2.1.8 : Wed May 26 2010 - 10:39:13 MDT