Yiqi,
Could you please modify and try the script below:
Wei
---- ;setfileoption("nc", "usenewhlfs", True) setfileoption("nc", "Format", "NetCDF4") system("/bin/rm -f " + Outfilename) ncdf = addfile( Outfilename, "c" ) ;ncdf->newco2 = newco2 ;=================================================================== ; explicitly declare file definition mode. Improve efficiency. ;=================================================================== setfileoption(fo,"DefineMode",True) ;Uncomment this line if you want compression ;setfileoption(ncdf,"CompressionLevel", 6) ; create global attributes of the file ;=================================================================== ;fAtt = True ; assign file attributes ;fAtt@title = "NCL generated netCDF file" ;fAtt@source_file = fn ;fAtt@Conventions = "None" ;fAtt@creation_date = systemfunc ("date") ;fileattdef(ncdf, fAtt) ; copy file attributes ;=================================================================== ; predefine the coordinate variables and their dimensionality ; Note: to get an UNLIMITED record dimension, we set the dimensionality ; to -1 (or the actual size) and set the dimension name to True. ;=================================================================== newco2 = new( (/N_Months, 31, nlevel, nlat, nlon/), "float") newco2!0 = "month" newco2!1 = "day" newco2!2 = "lev" newco2!3 = "lat" newco2!4 = "lon" month = ispan(MonthBegin, MonthEnd, 1) day = ispan(1,31,1) ;Change lev, lat, and lon to its real value lev = ispan(1,31,1) ;may be: lev = f->level lat = ispan(1,31,1) ;may be: lat = f->lat lon = ispan(1,31,1) ;may be: lon = f->lon dimNames = (/"month", "day", "lev", "lat", "lon"/) dimSizes = (/ MonthEnd - MonthBegin + 1, 31, nlevel, nlat, nlon /) dimUnlim = (/ True , False, False, False, False/) filedimdef(ncdf, dimNames, dimSizes, dimUnlim) ;=================================================================== filevardef(fo, "month", typeof(month), getvardims(month)) ;filevarattdef(fo,"month", month) filevardef(fo, "day", typeof(day), getvardims(day)) ;filevarattdef(fo,"day", day) filevardef(fo, "lev", typeof(lev), getvardims(lev) ) ;filevarattdef(fo,"lev", lev) ; copy lev attributes filevardef(fo, "lat", typeof(lat), getvardims(lat)) ;filevarattdef(fo,"lat", lat) ; copy lat attributes filevardef(fo, "lon", typeof(lon), getvardims(lon)) ;filevarattdef(fo,"lon", lon) ; copy lon attributes filevardef(ncdf, "newco2", typeof(newco2), getvardims(newco2)) ;filevarattdef(ncdf,"newco2", t) ; copy T attributes ;filevarchunkdef(ncdf, "newco2", chunkSizes) ;=================================================================== setfileoption(ncdf,"DefineMode",False) ncdf->month = (/month/) ncdf->day = (/day/) ncdf->lev = (/lev/) ncdf->lat = (/lat/) ncdf->lon = (/lon/) ncdf->newco2 = (/newco2/) printVarSummary(newco2) huangwei@ucar.edu VETS/CISL National Center for Atmospheric Research P.O. Box 3000 (1850 Table Mesa Dr.) Boulder, CO 80307-3000 USA (303) 497-8924 On Jan 3, 2013, at 9:37 PM, Yiqi Zheng wrote: > Hi all, > > I encountered the following problem when trying to create new files: > > file: NclNewFile.c, line: 6839 > Could not get varnode->name: <month> > file: NclNewFile.c, line: 6839 > Could not get varnode->name: <day> > file: NclNewFile.c, line: 6839 > Could not get varnode->name: <level> > file: NclNewFile.c, line: 6839 > Could not get varnode->name: <lat> > Segmentation fault > > The new file I want to create contains only 1 data (newco2), which has 5 dimensions (month, day, level, lat, lon). > > Could you help me with this error? Many thanks! > > Best regards, > Yiqi > > > The major part of my code is as follows: > > newco2 = new( (/N_Months, 31, nlevel, nlat, nlon/), "float") > newco2!0 = "month" > newco2&month = ispan(MonthBegin, MonthEnd, 1) > newco2!1 = "day" > newco2&day = ispan(1,31,1) > > do M=0, 11 > do D=0, 30 > Infilename = **** > f = addfile(Infilename, "r") > co2 = f->co2 > newco2(M,D,:,:,:) = dim_avg_n_Wrap(co2, 0) > end do > end do > > system("/bin/rm -f " + Outfilename) > ncdf = addfile( Outfilename, "c" ) > ncdf->newco2 = newco2 > > > > > > > _______________________________________________ > 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 Fri Jan 4 12:35:12 2013
This archive was generated by hypermail 2.1.8 : Fri Jan 04 2013 - 15:29:48 MST