Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Hi Gary, It's an unfortunate carryover from "long" originally being a netCDF type synonymous with "int". When unsigned primitive types were added to netCDF-4, "ulong" was interpreted as a synonym for "uint", although neither "long" nor "ulong" are ever emitted from ncdump. Finally, in analogy with CDL allowing either "unlimited" or "UNLIMITED" to specify the length of an unlimited dimension, type names are accepted in upper case, hence the CDL syntax error in specifying "double ULONG". Assuming no one uses upper case primitive type names in CDL, we've fixed this in the current snapshot, so ncgen will permit variables with names like "INT64" or "ULONG" in the next release. In the meantime, the only workaround is to rebuild ncgen with the current netCDF snapshot. --Russ > I have a relatively straightforward manually-edited CDL file that I'm turning > back into a netCDF file, and I'm getting a 'syntax error' from what looks to > me to be completely acceptable CDL: > > prompt> ncgen -n example.cdl > ncgen: example.cdl line 84: syntax error > > Here's the offending portion: > > 79 float dzw(z_w) ; > 80 dzw:long_name = "midpoint of k to midpoint of k+1" ; > 81 dzw:units = "centimeters" ; > 82 dzw:_FillValue = 9.96921e+36f ; > 83 dzw:missing_value = 9.96921e+36f ; > 84 double ULONG(nlat, nlon) ; > 85 ULONG:long_name = "array of u-grid longitudes" ; > 86 ULONG:units = "degrees_east" ; > 87 ULONG:_FillValue = 9.96920996838687e+36 ; > 88 ULONG:missing_value = 9.96920996838687e+36 ; > > I'm stumped. > > File is at > > ftp://ftp.cgd.ucar.edu/pub/strandwg/netCDF/example.cdl.gz > > Ideas/comments/help! > > Gary Strand > strandwg@xxxxxxxx
netcdfgroup
archives: