I altered your suggestion from earlier slightly, and was able to get the
result I was looking for..
By establishing
 if ( FirstTime ) then                ; get height info for labels
;
; height
;
      zmin = 0.
        zmax = 4.    ; top
      nz   = floattoint(zmax + 1)   ; interval. has to go with this setting
    end if
----------------------------------------
and then
 ; Find the index where 4km is - only need to do this once
        if ( FirstTime ) then
          zz = wrf_user_intrp3d(z,z,"v",plane,0.,opts)
          b = ind(zz(:,0) .gt. zmax*1000. )
          zmax_pos = b(0) - 1
          if ( abs(zz(zmax_pos,0)-zmax*1000.) .lt.
abs(zz(zmax_pos+1,0)-zmax*1000.) ) then
            zspan = b(0) - 1
          else
            zspan = b(0)
          end if
          delete(zz)
          delete(b)
          FirstTime = False
        end if
-------------------------------------------
I later got the contour info by
contour_pv = wrf_contour(a,wks,pv_plane(0:zmax_pos,:),opts_pv)
---------------------------------------------------------
The highlighted red is the variation of the advice you gave me (Yongzuo)
earlier.  This plotted only the height from 0 -> 4km within the cross
section.
Thanks for the help!
F. Tompkins
On Tue, Feb 2, 2010 at 4:16 PM, Li, Yongzuo <yongzuo.li@ou.edu> wrote:
>  Print the variable at one point to see if this variable contains
> entire vertical data.
>
> Yongzuo
>  ------------------------------
>  *From:* Claiborne Tompkins [tompkinc@my.fit.edu]
> *Sent:* Tuesday, February 02, 2010 12:14 PM
>
> *To:* Li, Yongzuo
> *Cc:* ncl-talk@ucar.edu
> *Subject:* Re: [ncl-talk] Cross Section setting "z" range (Claiborne
> Tompkins)
>
>    Thanks for the suggestion. Although the script runs with that
> adjustment, the script still plots PV through the entire vertical scale.
> WRF_HELP supplied me with the example script wrf_CrossSection4.ncl, which
> allows for the vertical range to be set, but has the cross section based on
> a center pivot point that extends the cross section through the entire
> x,y domain. For the plots I'm trying to generate, I need something along the
> lines of being able to create a cross section between 7N, 16W - 12N,
> 12W. Mix and matching the two is what is causing me trouble at the moment.
> The wrf_CrossSection4.ncl script...
>
>
> http://www.mmm.ucar.edu/wrf/OnLineTutorial/Graphics/NCL/Examples/CROSS_SECTION/wrf_CrossSection4.htm
>
> F. Tompkins
>
> On Tue, Feb 2, 2010 at 12:51 PM, Li, Yongzuo <yongzuo.li@ou.edu> wrote:
>
>>  Use z(:,:,0:4000)
>>
>> Yongzuo
>>
>>  ------------------------------
>> *From:* Claiborne Tompkins [tompkinc@my.fit.edu]
>> *Sent:* Tuesday, February 02, 2010 9:29 AM
>> *To:* Li, Yongzuo
>>
>> *Cc:* ncl-talk@ucar.edu
>> *Subject:* Re: [ncl-talk] Cross Section setting "z" range (Claiborne
>> Tompkins)
>>
>>    That was my attempt of trying to set the range of "Z" from 0 -> 4,000
>> m.
>>
>> F. Tompkins
>>
>> On Tue, Feb 2, 2010 at 9:38 AM, Li, Yongzuo <yongzuo.li@ou.edu> wrote:
>>
>>> What is the meaning for
>>>
>>> Z(0,4000)
>>>
>>> Yongzuo
>>> ________________________________________
>>> From: ncl-talk-bounces@ucar.edu [ncl-talk-bounces@ucar.edu] on behalf of
>>> ncl-talk-request@ucar.edu [ncl-talk-request@ucar.edu]
>>> Sent: Tuesday, February 02, 2010 8:25 AM
>>> To: ncl-talk@ucar.edu
>>> Subject: ncl-talk Digest, Vol 75, Issue 4
>>>
>>> Send ncl-talk mailing list submissions to
>>>        ncl-talk@ucar.edu
>>>
>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>        http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>> or, via email, send a message with subject or body 'help' to
>>>        ncl-talk-request@ucar.edu
>>>
>>> You can reach the person managing the list at
>>>        ncl-talk-owner@ucar.edu
>>>
>>> When replying, please edit your Subject line so it is more specific
>>> than "Re: Contents of ncl-talk digest..."
>>>
>>>
>>> Today's Topics:
>>>
>>>   1. Cross Section setting "z" range (Claiborne Tompkins)
>>>   2. CCSM conversion of Geoptential Height (Vijayaraghavan Srivatsan)
>>>   3. Re: CCSM conversion of Geoptential Height (Dennis Shea)
>>>
>>>
>>> ----------------------------------------------------------------------
>>>
>>> Message: 1
>>> Date: Tue, 2 Feb 2010 01:49:46 -0500
>>> From: Claiborne Tompkins <tompkinc@my.fit.edu>
>>> Subject: Cross Section setting "z" range
>>> To: ncl-talk@ucar.edu
>>> Message-ID:
>>>        <e5e8b7c61002012249j241a541fyf26588133411fb5@mail.gmail.com>
>>> Content-Type: text/plain; charset="iso-8859-1"
>>>
>>> I've been making cross sections and wanted to put a limit on "z" instead
>>> of
>>> plotting up to the vertical max within my WRF output, but have been
>>> unsuccessful when trying to set a range for z.  Right now I read "z" in
>>> through
>>>
>>>  z   = wrf_user_getvar(a, "z",it)     ; grid point height
>>>
>>> and tried to set a range when creating my pv_plane
>>>
>>> pv_plane = wrf_user_intrp3d(pvo,z(0,4000),"v",plane,0,opts)
>>>
>>> but keep receiving the error
>>>
>>> fatal:Number of subscripts do not match number of dimensions of
>>> variable,(2)
>>> Subscripts used, (3) Subscripts expected
>>> fatal:Execute: Error occurred at or near line 110 in file
>>> PotVort_CrossS.ncl
>>>
>>> Does anyone know the proper format for declaring the range of "z"?
>>>
>>> Thanks,
>>>
>>> F. Tompkins
>>> -------------- next part --------------
>>> An HTML attachment was scrubbed...
>>> URL:
>>> http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20100202/afe8dcfa/attachment.html
>>>
>>> ------------------------------
>>>
>>> Message: 2
>>> Date: Tue, 2 Feb 2010 17:27:53 +0800
>>> From: "Vijayaraghavan Srivatsan" <tmsvs@nus.edu.sg>
>>> Subject: CCSM conversion of Geoptential Height
>>> To: <ncl-talk@ucar.edu>
>>> Message-ID:
>>>        <82D169AB2230FA459E2832C4BD0C7A590AFCFBD0@MBX03.stf.nus.edu.sg>
>>> Content-Type: text/plain; charset="us-ascii"
>>>
>>> Hi all,
>>>
>>>
>>>
>>> I am using the vert_1.ncl to convert CCSM data (for WRF) from hybrid to
>>> pressure.
>>>
>>>
>>>
>>> Although, T, U, V and Humidity were successful, there is a problem with
>>> conversion of geopotential heights, despite using surface geopotential
>>> and surface pressure.
>>>
>>>
>>>
>>> I use vinth2p_ecmwf, since I need values upto 1000mb .( ie
>>> extrapolation).
>>>
>>>
>>>
>>> My code is below
>>>
>>>
>>>
>>> Any help in conversion please..
>>>
>>>
>>>
>>> Thanks a lot
>>>
>>>
>>>
>>> Sri
>>>
>>>
>>>
>>> ---------------------------
>>>
>>>
>>>
>>> ;*************************************************
>>>
>>> ; NCL tutorial script: vert_1.ncl
>>>
>>> ;************************************************
>>>
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>>
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>>
>>> ;************************************************
>>>
>>> begin
>>>
>>>
>>>
>>> Ntime = 1
>>>
>>>
>>>
>>> ;************************************************
>>>
>>> ; file handling
>>>
>>> ;************************************************
>>>
>>>
>>>
>>>   fn1  =
>>> "b30.042e.cam2.h3.Z3.60E-150E_50S-50N.2000-01-01_cat_2000-12-31.nc<http://b30.042e.cam2.h3.z3.60e-150e_50s-50n.2000-01-01_cat_2000-12-31.nc/>"
>>> ;
>>> define filename
>>>
>>>   in1  = addfile(fn1,"r")                         ; open netcdf file
>>>
>>>
>>>
>>>   Z3 = in1->Z3                                    ; select variable to
>>> ave
>>>
>>>
>>>
>>>   P0mb =1000.
>>>
>>>   hyam = in1->hyam                              ; get a coefficiants
>>>
>>>   hybm = in1->hybm                              ; get b coefficiants
>>>
>>>
>>>
>>>   fn2  =
>>> "b30.042e.cam2.h3.PS.60E-150E_50S-50N.2000-01-01_cat_2009-12-31.nc<http://b30.042e.cam2.h3.ps.60e-150e_50s-50n.2000-01-01_cat_2009-12-31.nc/>"
>>> ;
>>> define filename
>>>
>>>   in2  = addfile(fn2,"r")                         ; open netcdf file
>>>
>>>
>>>
>>>   PS   = in2->PS
>>>
>>>
>>>
>>>   fn3  =
>>> "b30.042e.cam2.h3.PHIS.60E-150E_50S-50N.2000-01-01_cat_2009-12-31.nc<http://b30.042e.cam2.h3.phis.60e-150e_50s-50n.2000-01-01_cat_2009-12-31.nc/>"
>>> ;
>>> define filename
>>>
>>>   in3  = addfile(fn3,"r")                         ; open netcdf file
>>>
>>>
>>>
>>>   PHIS   = in3->PHIS
>>>
>>>
>>>
>>>   fn4  =
>>> "b30.042e.cam2.h3.TS.60E-150E_50S-50N.2000-01-01_cat_2009-12-31.nc<http://b30.042e.cam2.h3.ts.60e-150e_50s-50n.2000-01-01_cat_2009-12-31.nc/>"
>>> ;
>>> define filename
>>>
>>>   in4  = addfile(fn4,"r")                         ; open netcdf file
>>>
>>>
>>>
>>>   TS   = in4->TS
>>>
>>>
>>>
>>>
>>>
>>> ;************************************************
>>>
>>> ; define other arguments required by vinth2p
>>>
>>> ;************************************************
>>>
>>> ; type of interpolation: 1 = linear, 2 = log, 3 = loglog
>>>
>>>   interp = 2
>>>
>>>
>>>
>>> ; is extrapolation desired if data is outside the range of PS
>>>
>>>   extrap = True
>>>
>>>
>>>
>>> ; create an array of desired pressure levels:
>>>
>>> pnew =
>>> (/1000,950,900,850,800,750,700,650,600,550,500,450,400,350,300,250,200,1
>>> 50,100/)
>>>
>>>
>>>
>>> ;************************************************
>>>
>>> ; calculate T on pressure levels
>>>
>>> ;************************************************
>>>
>>> ; note, the 7th argument is not used, and so is set to 1.
>>>
>>> ;************************************************
>>>
>>> ;   VARonP =
>>> vinth2p(Z3(0:Ntime,:,:,:),hyam,hybm,pnew,PS(0:Ntime,:,:),interp,P0mb,1,e
>>> xtrap)
>>>
>>>
>>>
>>>   VARonP =
>>> vinth2p_ecmwf(Z3(0:Ntime,:,:,:),hyam,hybm,pnew,PS(0:Ntime,:,:),interp,P0
>>> mb,1,extrap,-1,TS(0:Ntime,:,:),PHIS(0:Ntime,:,:))
>>>
>>>
>>>
>>> ;output in nc file
>>>
>>>  system("/bin/rm -f ./Z3_pressure.nc")    ; remove any pre-existing
>>> file
>>>
>>>  ncdf = addfile("./Z3_pressure.nc" ,"c")  ; open output netCDF file
>>>
>>>  filedimdef(ncdf,"time",-1,True)
>>>
>>>
>>>
>>>  VARonP!0    = "time"                      ; assign named dimensions
>>>
>>>  VARonP!1    = "lev"
>>>
>>>  VARonP!2    = "lat"
>>>
>>>  VARonP!3    = "lon"
>>>
>>>
>>>
>>>  VARonP&time    = in1&time(0:Ntime)
>>>
>>>  VARonP&lev     = pnew
>>>
>>>  VARonP&lat     = in1&lat
>>>
>>>  VARonP&lon     = in1&lon
>>>
>>>
>>>
>>>  VARonP@long_name = "Geopotential Height on plevel"           ; assign
>>> name
>>>
>>>  VARonP@units     = "m"
>>>
>>>
>>>
>>>  ncdf->Z3_pres = VARonP
>>>
>>>
>>>
>>>  print("finish convert Z3 to pressure level")
>>>
>>>  print("output .nc: ./Z3_pressure.nc")
>>>
>>>
>>>
>>>
>>>
>>> end
>>>
>>>
>>>
>>>
>>>
>>> -------------- next part --------------
>>> An HTML attachment was scrubbed...
>>> URL:
>>> http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20100202/3c0f75ff/attachment.html
>>>
>>> ------------------------------
>>>
>>> Message: 3
>>> Date: Tue, 02 Feb 2010 07:25:24 -0700
>>> From: Dennis Shea <shea@ucar.edu>
>>> Subject: Re: CCSM conversion of Geoptential Height
>>> To: Vijayaraghavan Srivatsan <tmsvs@nus.edu.sg>
>>> Cc: ncl-talk@ucar.edu
>>> Message-ID: <4B6835D4.8030607@ucar.edu>
>>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>>
>>> You do not indicate what the
>>> "problem with conversion of geopotential heights"
>>> actually is.
>>>
>>> *Extrapolation is always dangerous.*
>>>  EG: over the Himalaya the function uses the sfc T
>>>  and assumes a constant lapse rate. The (say) 1000hPa
>>>  hgt is based on the assumed lapse rate and the
>>>  hydrostatic equation. Sometimes this yields non realistic values.
>>>
>>> See Example 3 at
>>> http://www.ncl.ucar.edu/Applications/grid_fill.shtml
>>>
>>> This does not use geopotential heights but I might suggest
>>> using vinh2p or vinth2p_ecmwf *without* extrapolation.
>>> Then use poisson_grid_fill to file out the levels.
>>>
>>> Good luck
>>>
>>>
>>>
>>>
>>> Vijayaraghavan Srivatsan wrote:
>>> > Hi all,
>>> >
>>> >
>>> >
>>> > I am using the vert_1.ncl to convert CCSM data (for WRF) from hybrid to
>>> > pressure.
>>> >
>>> >
>>> >
>>> > Although, T, U, V and Humidity were successful, there is a problem with
>>> > conversion of geopotential heights, despite using surface geopotential
>>> > and surface pressure.
>>> >
>>> >
>>> >
>>> > I use vinth2p_ecmwf, since I need values upto 1000mb .( ie
>>> extrapolation).
>>> >
>>> >
>>> >
>>> > My code is below
>>> >
>>> >
>>> >
>>> > Any help in conversion please..
>>> >
>>> >
>>> >
>>> > Thanks a lot
>>> >
>>> >
>>> >
>>> > Sri
>>> >
>>> >
>>> >
>>> > ---------------------------
>>> >
>>> >
>>> >
>>> > ;*************************************************
>>> >
>>> > ; NCL tutorial script: vert_1.ncl
>>> >
>>> > ;************************************************
>>> >
>>> > load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>> >
>>> > load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>> >
>>> > ;************************************************
>>> >
>>> > begin
>>> >
>>> >
>>> >
>>> > Ntime = 1
>>> >
>>> >
>>> >
>>> > ;************************************************
>>> >
>>> > ; file handling
>>> >
>>> > ;************************************************
>>> >
>>> >
>>> >
>>> >    fn1  =
>>> > "b30.042e.cam2.h3.Z3.60E-150E_50S-50N.2000-01-01_cat_2000-12-31.nc<http://b30.042e.cam2.h3.z3.60e-150e_50s-50n.2000-01-01_cat_2000-12-31.nc/>"
>>> ;
>>> > define filename
>>> >
>>> >    in1  = addfile(fn1,"r")                         ; open netcdf file
>>> >
>>> >
>>> >
>>> >    Z3 = in1->Z3                                    ; select variable to
>>> ave
>>> >
>>> >
>>> >
>>> >    P0mb =1000.
>>> >
>>> >    hyam = in1->hyam                              ; get a coefficiants
>>> >
>>> >    hybm = in1->hybm                              ; get b coefficiants
>>> >
>>> >
>>> >
>>> >    fn2  =
>>> > "b30.042e.cam2.h3.PS.60E-150E_50S-50N.2000-01-01_cat_2009-12-31.nc<http://b30.042e.cam2.h3.ps.60e-150e_50s-50n.2000-01-01_cat_2009-12-31.nc/>"
>>> ;
>>> > define filename
>>> >
>>> >    in2  = addfile(fn2,"r")                         ; open netcdf file
>>> >
>>> >
>>> >
>>> >    PS   = in2->PS
>>> >
>>> >
>>> >
>>> >    fn3  =
>>> > "b30.042e.cam2.h3.PHIS.60E-150E_50S-50N.2000-01-01_cat_2009-12-31.nc<http://b30.042e.cam2.h3.phis.60e-150e_50s-50n.2000-01-01_cat_2009-12-31.nc/>"
>>> ;
>>> > define filename
>>> >
>>> >    in3  = addfile(fn3,"r")                         ; open netcdf file
>>> >
>>> >
>>> >
>>> >    PHIS   = in3->PHIS
>>> >
>>> >
>>> >
>>> >    fn4  =
>>> > "b30.042e.cam2.h3.TS.60E-150E_50S-50N.2000-01-01_cat_2009-12-31.nc<http://b30.042e.cam2.h3.ts.60e-150e_50s-50n.2000-01-01_cat_2009-12-31.nc/>"
>>> ;
>>> > define filename
>>> >
>>> >    in4  = addfile(fn4,"r")                         ; open netcdf file
>>> >
>>> >
>>> >
>>> >    TS   = in4->TS
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > ;************************************************
>>> >
>>> > ; define other arguments required by vinth2p
>>> >
>>> > ;************************************************
>>> >
>>> > ; type of interpolation: 1 = linear, 2 = log, 3 = loglog
>>> >
>>> >    interp = 2
>>> >
>>> >
>>> >
>>> > ; is extrapolation desired if data is outside the range of PS
>>> >
>>> >    extrap = True
>>> >
>>> >
>>> >
>>> > ; create an array of desired pressure levels:
>>> >
>>> > pnew =
>>> >
>>> (/1000,950,900,850,800,750,700,650,600,550,500,450,400,350,300,250,200,150,100/)
>>> >
>>> >
>>> >
>>> > ;************************************************
>>> >
>>> > ; calculate T on pressure levels
>>> >
>>> > ;************************************************
>>> >
>>> > ; note, the 7th argument is not used, and so is set to 1.
>>> >
>>> > ;************************************************
>>> >
>>> > ;   VARonP =
>>> >
>>> vinth2p(Z3(0:Ntime,:,:,:),hyam,hybm,pnew,PS(0:Ntime,:,:),interp,P0mb,1,extrap)
>>> >
>>> >
>>> >
>>> >    VARonP =
>>> >
>>> vinth2p_ecmwf(Z3(0:Ntime,:,:,:),hyam,hybm,pnew,PS(0:Ntime,:,:),interp,P0mb,1,extrap,-1,TS(0:Ntime,:,:),PHIS(0:Ntime,:,:))
>>> >
>>> >
>>> >
>>> > ;output in nc file
>>> >
>>> >   system("/bin/rm -f ./Z3_pressure.nc")    ; remove any pre-existing
>>> file
>>> >
>>> >   ncdf = addfile("./Z3_pressure.nc" ,"c")  ; open output netCDF file
>>> >
>>> >   filedimdef(ncdf,"time",-1,True)
>>> >
>>> >
>>> >
>>> >   VARonP!0    = "time"                      ; assign named dimensions
>>> >
>>> >   VARonP!1    = "lev"
>>> >
>>> >   VARonP!2    = "lat"
>>> >
>>> >   VARonP!3    = "lon"
>>> >
>>> >
>>> >
>>> >   VARonP&time    = in1&time(0:Ntime)
>>> >
>>> >   VARonP&lev     = pnew
>>> >
>>> >   VARonP&lat     = in1&lat
>>> >
>>> >   VARonP&lon     = in1&lon
>>> >
>>> >
>>> >
>>> >   VARonP@long_name = "Geopotential Height on plevel"           ;
>>> assign name
>>> >
>>> >   VARonP@units     = "m"
>>> >
>>> >
>>> >
>>> >   ncdf->Z3_pres = VARonP
>>> >
>>> >
>>> >
>>> >   print("finish convert Z3 to pressure level")
>>> >
>>> >   print("output .nc: ./Z3_pressure.nc")
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > end
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> ------------------------------------------------------------------------
>>> >
>>> > _______________________________________________
>>> > ncl-talk mailing list
>>> > List instructions, subscriber options, unsubscribe:
>>> > http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>> ------------------------------
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk@ucar.edu
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>> End of ncl-talk Digest, Vol 75, Issue 4
>>> ***************************************
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>
>>
>
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Feb  2 15:06:19 2010
This archive was generated by hypermail 2.1.8 : Sun Feb 07 2010 - 15:37:25 MST