Hi. Could I have some help getting past a subscript indexing error?
Although I am dealing with WRF, this is ncl-talk type question.
I use the wrf_user_ll_to_ij function to get indices for subscripting.
But keep getting this error.
Any help would be appreciated.
-Erik
fatal:Illegal subscript. Subscripts must be integer when not using  
coordinate indexing
fatal:Execute: Error occurred at or near line 64 in file  
wrf_level_winds-Regions.ncl
be1005en% ncl wrf_level_winds-Regions.ncl
  Copyright (C) 1995-2009 - All Rights Reserved
  University Corporation for Atmospheric Research
  NCAR Command Language Version 5.1.1
  The use of this software is governed by a License Agreement.
  See http://www.ncl.ucar.edu/ for more details.
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/wrf/WRFUserARW.ncl"
; Read in the wrf file
diri = "./"
fili = "wrfout_NCEP2_0820_1001_default_PleimXiu"
a = addfile(diri+fili+".nc","r")
; What times and how many time steps are in the data set?
   times  = wrf_user_list_times(a)
tm = "96:336"   ; September
; get the variables we need
     u  = wrf_user_getvar(a, "ua",-1)        ; u averaged to mass points
     v  = wrf_user_getvar(a, "va",-1)        ; v averaged to mass points
     p  = wrf_user_getvar(a, "pressure",-1) ; pressure is our vertical  
coordinate
regions = (/"R1","R2","R3","R4"/)		; Sub_regions of interest ; think  
"boxes"
ip_latsL = (/12.5, 10,  5.,  7. /)			; left-hand corner lats
ip_lonsL = (/ -15.,  -15.,  -7.,  -30. /)		; left-hand corner lons
ip_latsR = (/17.5, 12.5, 10., 17.5/)		; right-hand corner lats
ip_lonsR = (/30., 30., 7., -15./)			; left-hand corner lons
locs = dimsizes(ip_latsL)
do j = 0,locs-1
         locLHS_R = wrf_user_ll_to_ij(a, ip_lonsL(j), ip_latsL(j), True)
         locRHS_R = wrf_user_ll_to_ij(a, ip_lonsR(j), ip_latsR(j), True)
         locL_X = locLHS_R(0)
         locL_Y = locLHS_R(1)
         locR_X = locRHS_R(0)
         locR_Y = locRHS_R(1)
         Rlats    = locL_Y+":"+locR_Y
         Rlons   = locL_X+":"+locR_X
         ; Variable (time, Rlats, Rlons)
         ;************************************
         ; Get WRF 1D coordinates
         ;************************************
         lat = a->XLAT(0,:,0)
         lon = a->XLONG(0,0,:)
         ; The specific pressure levels that we want the data  
interpolated to.
         pressure_levels = (/ 925., 700./)   ; pressure levels to plot
         nlevels         = dimsizes(pressure_levels)     ; number of  
pressure levels
         ; LOOP OVER LEVELS
         do level = 0,nlevels-1
                 pressure = pressure_levels(level)
                 u_plane  = wrf_user_intrp3d( u,p,"h",pressure,0.,False)
                 v_plane  = wrf_user_intrp3d( v,p,"h",pressure,0.,False)
                 u_plane!1 = "lat"
                 u_plane!2 = "lon"
                 u_plane&lat = lat
                 u_plane&lon = lon
                 v_plane!1 = "lat"
                 v_plane!2 = "lon"
                 v_plane&lat = lat
                 v_plane&lon = lon
                 spd     = (u_plane*u_plane + v_plane*v_plane)^(0.5) ;  
m/sec
                 spd@description = "Wind Speed"
                 spd@units = "m/s"
                 spd!1 = "lat"
                 spd!2 = "lon"
                 spd&lat = lat
                 spd&lon = lon
                 U = u_plane(tm,locL_Y:locR_Y,locL_X:locR_X)  ; ERROR  
keeps happening here
                 V = v_plane(tm,locL_Y:locR_Y,locL_X:locR_X)
                 S = spd(tm,locL_Y:locR_Y,locL_X:locR_X)
                 if ( pressure .eq. 925 ) then
                 NCFILE = fili+"_"+regions(j)+"_925mb-winds.nc"
                 system ("/bin/rm -f " +  NCFILE)    ; remove any pre- 
exist file time
                 ncdf     = addfile(NCFILE ,"c")  ; open output netCDF  
file
                 ; make time and UNLIMITED dimension      ;  
recommended  for most applications
                 filedimdef(ncdf,"Time",-1,True)
                 ncdf->lat=lat
                 ncdf->lon=lon
                 ncdf->u925=U
                 ncdf->v925=V
                 ncdf->wspd925=S
                 delete(NCFILE)  ; free memory
                 delete(ncdf)
                 end if
                 if ( pressure .eq. 700 ) then   ; plot temp, height,  
wind barbs
                 NCFILE = fili+"_"+regions(j)+"_700mb-winds.nc"
                 system ("/bin/rm -f " +  NCFILE)    ; remove any pre- 
exist file time
                 ncdf     = addfile(NCFILE ,"c")  ; open output netCDF  
file
                 ; make time and UNLIMITED dimension      ;  
recommended  for most applications
                 filedimdef(ncdf,"Time",-1,True)
                 ncdf->lat=lat
                 ncdf->lon=lon
                 ncdf->u700=U
                 ncdf->v700=V
                 ncdf->wspd700=spd
                 delete(NCFILE)  ; free memory
                 delete(ncdf)
                 end if
         end do
end do
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Mon Dec  7 17:18:19 2009
This archive was generated by hypermail 2.1.8 : Thu Dec 10 2009 - 11:30:59 MST