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.
Hi, A beta release of netCDF 2.0 is now available, in file: pub/netcdf-2.0-beta.tar.Z host: unidata.ucar.edu Because version 2.0 includes slight changes to the interface, the major version number was incremented. There is no change to the file representation, but the C interface now uses "long" instead of "int" for dimension sizes and hyperslab corners and edges. Recompilation will be necessary only on platforms where "long" and "int" are different sizes, such as MSDOS and OS/2 machines with Microsoft C compilers, where longs are 32 bits and ints are 16 bits. We had hoped to include the netCDF operators with this release, but they aren't ready yet. We're working on them again and hope to be able to release a useful set of operators before the end of the year. Version 2.0 also includes fixes for bugs found since netCDF 1.11. A more complete description of the changes is appended to this note. I've tested the new release on the following platforms: IBM PS/2 (OS/2 1.3, but should work on MSDOS and PCDOS 3.3 or later) SPARC (SunOS 4.1.1) DECstation (Ultrix 4.2) VAX (VMS 5.4) IBM RS6000 (AIX 3.1) CRAY-YMP (Unicos 6.1.4) If you use netCDF on another platform and would like to see support for that platform included in the general release of netCDF 2.0, please test the beta release and report fixes to us. As we have no access to other platforms, we can include such fixes but cannot test them. If you get a chance to test this beta release and find any other problems, please report them, even without fixes, to support@xxxxxxxxxxxxxxxx and we'll try to get fixes in before the general release. Changes in netCDF (1.11 to 2.0) ******************************* The netCDF C interfaces were changed to use long values rather than ints for netCDF dimensions on all machines. This changed the following interfaces that formerly use "int" or "int*" for dimensions and dimension pointers: int ncdimdef(int cdfid, const char* name, int length); int ncdiminq(int cdfid, int dimid, char* name, int* length); int ncvarput1(int cdfid, int varid, int *coords, void* value); int ncvarget1(int cdfid, int varid, int *coords, void* value); int ncvarput(int cdfid, int varid, int *start, int *count, void* value); int ncvarget(int cdfid, int varid, int *start, int *count, void* value); to use "long" or "long*" instead: int ncdimdef(int cdfid, const char* name, long length); int ncdiminq(int cdfid, int dimid, char* name, long* length); int ncvarput1(int cdfid, int varid, long *coords, void* value); int ncvarget1(int cdfid, int varid, long *coords, void* value); int ncvarput(int cdfid, int varid, long *start, long *count, void* value); int ncvarget(int cdfid, int varid, long *start, long *count, void* value); No change to data representation or file formats was required, since the XDR form of integers is 32 bits. The main advantage of this change is that on platforms such as MSDOS machines on which integers are only 16 bits, it is now possible to access data from variables that have a dimension greater than 32767. This is of some practical importance, since CD-ROM disks are being written with large datasets in netCDF form, and it is desirable to be able to access this data from inexpensive 16-bit machines. Since ints and longs are the same on most current platforms (Suns, DECstations, VAXen, IBM RS6000s, SGIs, HPs, CRAYs, ...), this change does not break old code. Applications compiled with the old interface on such machines will work the same way as they did before without recompiling. Standard C compilers that support prototypes permit using int values for dimension size and automatically convert them to longs before the call. C code that uses pointers to ints instead of pointers to longs (where required by the new interfaces) will elicit warning messages from lint and from standard C compilers, so all such problems may be caught at compile time. Programs compiled under the old interface on machines with 16-bit ints (primarily MSDOS machines based on the 80286 or earlier chips) must be recompiled. Such programs are also the main beneficiaries of the change. Modifications necessitated by this interface change are included in this version, including changes to the man-page reference documentation, the User's Guide, the nctest test program, the ncdump and ncgen utilities, and the Fortran jackets. A bug on VMS was fixed by forcing stream mode access on netCDF files. Ncdump was fixed to work on platforms that have 16-bit integers, even for variables that have a dimension to large to fit in a 16-bit integer. The "-c" option of ncgen was fixed to work even when a large number of values need to be initialized, instead of overflowing the array reserved for C statements. Changes were incorporated in the Makefiles to permit building netCDF on SGI platforms. A bug setting fill values for short integers, in which only every other value was filled, was fixed. --Russ
netcdfgroup
archives: