Re: problem with []() in 3.4 version

Hi,

R. Bauer asked:

> yesterday I sended an inquiry why netCDF 3.4 will not accept signs like
> '()[]' and so on in the
> short names.
> 
> During reading your info material on your internet-site  we found that's
> it is really described as this.  But unfortunately on an older version
> for unix (aix)  2.4 this was working.
> 
> Unfortunately do we have a lot of files using this "()[]".
> 
> Do we have  a chance to get these functionality back again?

Sorry I didn't get a chance to answer this yesterday.

With netCDF 3.x, we changed the characters permitted in names for netCDF
variables, dimensions, and attributes, because users had complained that
unrestricted names permitted by the library were inconsistent with the
CDL restrictions enforced by the ncgen and ncdump utilities.  The new
netCDF 3.x restriction is in the netCDF-3 User's Guide under "Section
2.1.1 Naming Conventions" and also in "Appendix D, NetCDF 2 Transition
Guide" in both the Fortran and C User's Guides:

    ... In the previous library, there was no checking that the
    characters used in the name of a netCDF object were compatible with
    CDL restrictions.  The ncdump and ncgen utilities that use CDL
    permit only alphanumeric characters, "_" and "-" in names.  Now this
    restriction is also enforced by the library for creation of new
    dimensions, variables, and attributes.  Previously existing
    components with less restrictive names will still work OK.

(See, for example,
<http://www.unidata.ucar.edu/packages/netcdf/guidec/guidec-20.html>).

So if you have existing netCDF files with other characters in names, for
example "()[]", the 3.x library should be able to read them, but it will
not permit creating new names with such characters in them.  If you need
to circumvent the restriction it is possible to just take the name test
out of the library source code and recompile it, but if you do this,
realize that ncgen users may have trouble reading your files or
understanding the output from ncdump on your files.  The change requires
a simple modification to the NC_check_name() function in libsrc/string.c
to permit the additional characters you want and then rebuilding.

With version 3.4, we relaxed the name restriction slightly to permit
periods, ".", in the names of netCDF (and CDL) components.

--Russ
_____________________________________________________________________

Russ Rew                                         UCAR Unidata Program
russ@xxxxxxxxxxxxxxxx                     http://www.unidata.ucar.edu


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