Guangshan and Michael,
First, this is not a new problem, or a bug sneaked into 6.2.0, as this happened in 6.1.2 as well.
Here is what we find:
1. Your file has "lev, lat, lon" as coordinate variables,
2. But variable "U" has "lev, lat, lon" as attributes as well.
3. When NCL just read a slice of variable, NCL will create an attribute with the name of
that (slice indexed) coordinate variable, and its value is the slice index.
4. Here comes the problem, as U already has lev, or lat, or lon as attributes,
NCL sees this, and does not what do, so gives a fatal error.
To avoid this issue, you can do:
a) Make copy of your original file, as we are going to remove U's attributes first.
cp test_uwind.nc uwind.nc
b) Create a script (say tst.ncl) cto write new attributes of U and then remove U's lev, lat, lon attributes.
f = addfile("uwind.nc", "w")
f->U@lon_ori = f->U@lon
f->U@lat_ori = f->U@lat
f->U@lev_ori = f->U@lev
delete(f->U@lon)
delete(f->U@lat)
delete(f->U@lev)
u0 = f->U(2,:,:,:)
;printVarSummary(u0)
u1 = f->U(:,2,:,:)
;printVarSummary(u1)
u2 = f->U(:,:,2,:)
;printVarSummary(u2)
u3 = f->U(:,:,:,2)
printVarSummary(u3)
c) run the script:
ncl tst.ncl
Copyright (C) 1995-2014 - All Rights Reserved
University Corporation for Atmospheric Research
NCAR Command Language Version 6.2.1
The use of this software is governed by a License Agreement.
See http://www.ncl.ucar.edu/ for more details.
Variable: u3
Type: float
Total Size: 81920 bytes
20480 values
Number of Dimensions: 3
Dimensions and sizes: [time | 40] x [lev | 4] x [lat | 128]
Coordinates:
time: [ 31..14266]
lev: [200..1000]
lat: [-88.92773535229591..88.92773535229591]
Number Of Attributes: 10
lon : 2.8125
time_rep : Estimated from monthly modern calendar data
missing_value : 9.96921e+36
cell_method : time: mean
long_name : Zonal wind
units : m/s
_FillValue : 9.96921e+36
lon_ori : 49.21875
lat_ori : 48.32636101818818
lev_ori : 1000
You can see there is a new attribute "lon" then, in addition to "lev_ori, lat_ori, lon_ori", which we renamed.
Hope this explains all.
Please let me know if you need any help.
Thanks,
Wei
---- ncdump -h test_uwind.nc netcdf test_uwind { dimensions: time = UNLIMITED ; // (40 currently) lev = 4 ; lat = 128 ; lon = 256 ; variables: float U(time, lev, lat, lon) ; U:time_rep = "Estimated from monthly modern calendar data" ; U:missing_value = 9.96921e+36f ; U:lon = 49.21875 ; U:lat = 48.3263610181882 ; U:lev = 1000.f ; U:cell_method = "time: mean" ; U:long_name = "Zonal wind" ; U:units = "m/s" ; U:_FillValue = 9.96921e+36f ; double lat(lat) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; float lev(lev) ; lev:positive = "down" ; lev:units = "hPa" ; lev:long_name = "pressure" ; double lon(lon) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; On May 8, 2014, at 1:38 PM, Michael Notaro <mnotaro@wisc.edu> wrote: > I looked at it with Guangshan and definitely something is wrong > in the newer versions of NCL. I included the ncdump from the file. > If you try to retrieve U(:,2,:,:) or U(:,:,2,:) or U(:,:,:,2), it will give an error, > but U(2,:,:,:) works ok. > > > > > > > > > [yslogin2]409%: ncdump -h isotag_t85_115.0k.cam2.h0.cel.plev.delta.611-650-ANN.nc > netcdf isotag_t85_115.0k.cam2.h0.cel.plev.delta.611-650-ANN { > dimensions: > time = UNLIMITED ; // (40 currently) > lat = 128 ; > lon = 256 ; > lev = 4 ; > variables: > float CLDHGH(time, lat, lon) ; > CLDHGH:time_rep = "Estimated from monthly modern calendar data" ; > CLDHGH:lon = 358.59375 ; > CLDHGH:lat = 88.9277353522959 ; > CLDHGH:units = "fraction" ; > CLDHGH:long_name = "Vertically-integrated high cloud" ; > CLDHGH:cell_method = "time: mean" ; > CLDHGH:_FillValue = 9.96921e+36f ; > float U(time, lev, lat, lon) ; > U:time_rep = "Estimated from monthly modern calendar data" ; > U:missing_value = 9.96921e+36f ; > U:lon = 49.21875 ; > U:lat = 48.3263610181882 ; > U:lev = 1000.f ; > U:cell_method = "time: mean" ; > U:long_name = "Zonal wind" ; > U:units = "m/s" ; > U:_FillValue = 9.96921e+36f ; > > On May 8, 2014, at 1:57 PM, Guangshan Chen wrote: > >> Dear NCL developers, >> >> I just notice that there is an error message popped out when I read multi dimension data with one dimension fixed. >> >> I could not remember it was shown in the old-version NCL. >> >> Here is what I did: >> >> Opening a file containing zonal wind and read zonal wind >> uwind = file_in->U(:,2,:,:) >> >> The following error will come out: >> Copyright (C) 1995-2014 - All Rights Reserved >> University Corporation for Atmospheric Research >> NCAR Command Language Version 6.2.0 >> The use of this software is governed by a License Agreement. >> See http://www.ncl.ucar.edu/ for more details. >> fatal:Subscript out of range, error in subscript #0 >> >> But if you read the wind as this: uwind = file_in->U(:,:,:,:), there will be no error message. >> >> However, even with the error message, it seems I still can get the wind at the level I want. >> >> >> Any idea why this happens? >> >> Thanks. >> >> - Guangshan >> >> >> >> >> >> >> _______________________________________________ >> 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
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Thu May 8 17:58:04 2014
This archive was generated by hypermail 2.1.8 : Fri May 09 2014 - 15:23:17 MDT