Re: [netcdfgroup] Mysterious syntax error from 'ncgen -n'

On Wed May 15, 2013, at 3:26 PM, Russ Rew <russ@xxxxxxxxxxxxxxxx> wrote:

> 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.

Thanks, Russ, for finding the solution!

I did run the netCDF-3 version of 'ncgen' over the same file, with no problems.

I've decided I can temporarily change "ULONG" to some other string, run 
'ncgen', then use 'ncrename' to change the temporary string back to "ULONG".

Good enough for what I need.


> 
> --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

Gary Strand
strandwg@xxxxxxxx





  • 2013 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: