NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
If a variable in an .cdl file contains a value of "-0" or "+0", ncgen produces a syntax error. The reason is seems to be the following in ncgen.l: [+-]?[1-9][0-9]*[lL]?|0[lL]? { I am not familar with lex, but it seems to me, the author defined a long constant as beginning with + or - and a number 1-9, or as a single 0 without + or -. I don't know why this was done, so I don't want to change it. The whole thing don't look like a problem, why should anyone insert a -0 in his .cdl file? BUT: At least on the Sun (SUN OS 4.1.3), ncdump often generates a -0! (This seems to be a bug in SUNs output formatting routines, the MS-DOS Version of ncdump don't have this problem). Run the following little program: /* ------------- Cut Here ----------------*/ #include <stdio.h> #include <netcdf.h> main() { double d=0; int ncid, dimid, varid; long start=0, count=1; d *= -1; ncid = nccreate("test.nc",NC_CLOBBER); dimid=ncdimdef(ncid, "time",1); varid=ncvardef(ncid, "velocity",NC_DOUBLE,1,&dimid); ncendef(ncid); ncvarput (ncid,varid,&start, &count,&d); ncclose(ncid); } /* ------------- Cut Here ----------------*/ Now run "ncdump test.nc": netcdf test { dimensions: time = 1 ; variables: double velocity(time) ; data: velocity = -0 ; // <---------- Here it is. } Try to run ncgen on the output and you get: ncgen: test.cdl line 10: syntax error Now I would like to change ncgen to accept the "-0" or ncdump to produce at least "-0." like it does in attributes. Any ideas what's the best solution? Bernward Bretthauer ----- End Included Message -----
netcdfgroup
archives: