This file contains a high-level description of this package's evolution.
Entries are in reverse chronological order (most recent first).


VERSION		COMMENTS
-------		--------
3.5	YYYY-MM-DD

		Added Fortran 90 interface.

		Changed C macro TIMELEN in file cxx/nctst.cpp to
		TIMESTRINGLEN to avoid clash with macro defined on AIX
		systems in /usr/include/time.h.

                Fixed miswriting of netCDF header when exiting define
                mode.  Because the header was always written correctly
                later, this was only a problem if there was another
                reader of the netCDF file.

		Fixed explicit synchronizing between netCDF writer and
		readers via the nc_sync(), nf_sync(), and ncsync()
		functions.

		Fixed a number of bugs related to attempts to support
		shrinking the header in netCDF files when attributes
		are rewritten or deleted.  Also fixed the problem that
		nc__endef() did not work as intended in reserving
		extra space in the file header, since the extra space
		would be compacted again on calling nc_close().

		Fixed the "redef bug" that occurred when nc_enddef()
		or nf_enddef() is called after nc_redef() or
		nf_redef(), the file is growing such that the new
		beginning of a record variable is in the next "chunk",
		and the size of at least one record variable exceeds
		the chunk size (see netcdf.3 man page for a
		description of this tuning parameter and how to set
		it).  This bug resulted in corruption of some values
		in other variables than the one being added.

		The "__" tuning functions for the Fortran interface,
		nf__create, nf__open, and nf__enddef, are now
		documented in the Fortran interface man pages.

		Add an 'uninstall' target to all the Makefiles.
		Dave Glowacki <dglo@SSEC.WISC.EDU> 199810011851.MAA27335

		Added support for multiprocessing on Cray T3E.
		Hooks added by Glenn, but the majority of the work
		was done at NERSC. Also includes changes to ffio
		option specification. Patch rollup provided by
		R. K. Owen <rkowen@Nersc.GOV>. The following functions
		are added to the public interface.
			nc__create_mp()
			nc__open_mp()
			nc_set_base_pe()
			nc_inq_base_pe()

		Fixed makefile URL for Win32 systems in INSTALL file.

		Made test for UNICOS system in the configure script case
		independent.

		Ported to the following systems:
		    AIX 4.3 (both /bin/xlc and /usr/vac/bin/xlc compilers)
		    IRIX 6.5
		    IRIX64 6.5

		Changed the extension of C++ files from ".cc" to ".cpp".
		Renamed the C++ interface header file "netcdfcpp.h"
		instead of "netcdf.hh", changing "netcdf.hh" to
		include "netcdfcpp.h" for backward compatibility.

		Treat "FreeBSD" systems the same as "BSD/OS" system
		w.r.t. Fortran and "whatis" database.

		Corrected manual pages: corrected spelling of "enddef" (was
		"endef") and ensured that the words "index" and "format"
		will be correctly printed.

                Updated support for Fortran-calling-C interface by
                updating "fortran/cfortran.h" from version 3.9 to
                version 4.1.  This new version supports the Portland
                Group Fortran compiler (C macro "pgiFortran")
                and the Absoft Pro Fortran compiler (C macro
                "AbsoftProFortran").

                Corrected use of non-integral-constant-expression
                in specifying size of temporary arrays in file
                "libsrc/ncx_cray.c".

		Added Compaq Alpha Linux workstation example to INSTALL
		file.

		Ported cfortran.h to Cygnus GNU Win32 C compiler (gcc
		for Windows).

		Fixed bug in ncdump using same CDL header name when
		called with multiple files.
		
		Added new NULL data type  NC_NAT (Not A Type) to
		facilitate checking whether a variable object has had
		its type defined yet, for example when working with
		packed values.

		Fixed use of compile-time macro NO_NETCDF_2 so it
		really doesn't include old netCDF-2 interfaces, as
		intended.

		Ported to MacOS X Public Beta (Darwin 1.2/PowerPC).

		Fixed C++ friend declarations to conform to C++ standard.

		Changed INSTALL file to INSTALL.html instead.

3.4     1998-03-09

		Fixed ncx_cray.c to work on all CRAY systems,
		not just CRAY1. Reworked USE_IEG, which was incorrect.
		Reworked short support. Now USE_IEG and otherwise
		both pass t_ncx.

		To better support parallel systems, static and malloc'ed
		scratch areas which were shared in the library
		were eliminated. These were made private and on the
		stack where possible. To support this, the macros
		ALLOC_ONSTACK and  FREE_ONSTACK are defined in onstack.h.

		The buffered i/o system implementation in posixio.c
		was reimplemented to limit the number and size of read()
		or write() system calls and use greater reliance on memory
		to memory copy. This saves a great deal of wall clock time
		on slow (NFS) filesystems, especially during nc_endef().

		Added performance tuning "underbar underbar" interfaces
		nc__open(), nc__create(), and nc__enddef().

		The 'sizehint' contract between the higher
		layers and the ncio layer is consistently enforced. 

		The C++ interface has been updated so that the
		deprecated "nclong" typedef should no longer be
		required, and casts to nclong no longer necessary.  Just
		use int or long as appropriate.  nclong is still
		supported for backwards compatibility.

		The ncdump utility now displays byte values as signed,
		even on platforms where the type corresponding to a C
		char is unsigned (SGI, for example).  Also the ncdump
		and ncgen utilities have been updated to display and
		accept byte attributes as signed numeric values (with a
		"b" suffix) instead of using character constants.

		In libsrc/error.c:nc_strerror(int), explain that
		NC_EBADTYPE applies to "_FillValue type mismatch".

		Some changes to configure scripts (aclocal.m4), 
		macros.make.in and ncgen/Makefile to support
		NEC SUPER-UX 7.2.

		The "usage" messages of ncgen and ncdump include the
		string returned from nc_inq_libvers().

		Corrected some casts in the library so that all phases of
		the arithmetic computing file offsets occurs with "off_t"
		type. This allows certain larger netcdf files to be created
		and read on systems with larger (64bit) off_t.

		In ncgen, multidimensional character variables are now
		padded to the length of last dimension, instead of just
		concatenating them.  This restores an undocumented but
		convenient feature of ncgen under netCDF-2.  Also, a
		syntax error is now reliably reported if the netcdf name
		is omitted in CDL input.

		Fortran and C code generated by ncgen for netCDF
		components whose names contain "-" characters will now
		compile and run correctly instead of causing syntax
		errors.

		The library allows "." characters in names as well
		as "_" and "-" characters. A zero length name "" is
		explictly not allowed.  The ncgen utility will now
		permit "." characters in CDL names as well.

		Memory leaks in the C++ interface NcVar::as_*() member
		functions and NcFile::add_var() member function are
		fixed.  The documentation was fixed where it indicated
		incorrectly that the library managed value blocks that
		the user is actually responsible for deleting.

                The values of the version 2 Fortran error codes have
                been modified to make the version 2 Fortran interface
                more backward compatible at the source level.

                Added support for systems whose Fortran INTEGER*1 and
                INTEGER*2 types are equivalent to the C "long" type but
                whose C "int" and "long" types differ.  An example of
                such a system is the NEC SX-4 with the "-ew" option to
                the f90 compiler (sheesh, what a system!).

                Fixed Version 2 Fortran compatibility bug: NCVGTG,
                NCVGGC, NCVPTG, and NCVPGC didn't work according to the
                Version 2 documentation if the innermost mapping value
                (i.e. IMAP[1]) was zero (indicating that the netCDF
                structure of the variable should be used).

3.3.1	1997-06-16

		One can now inquire about the number of attibutes that a
		variable has using the global variable ID.

                The FORTRAN interface should now work on more systems.
                In particular:

                    It should now work with FORTRAN compilers whose
                    "integer*1" datatype is either a C "signed char",
                    "short", or "int" and whose "integer*2" datatype is
                    either a C "short" or "int".

                    It should now work with FORTRAN compilers that are
                    extremely picky about source code formatting (e.g.
                    the NAG f90 compiler).

		The dependency on the non-POSIX utility m4(1) for
		generating the C and FORTRAN manual pages has been
		eliminated.

                EXTERNAL statements have been added to the FORTRAN
                include-file "netcdf.inc" to eliminate excessive
                warnings about "unused" variables (which were actually
                functions) by some compilers (e.g. SunOS 4.1.3's f77(1)
                version 1.x).

                Building the netCDF-3 package no longer requires the
                existence of the Standard C macro RAND_MAX.

		Fixed an ncdump bug resulting in ncdump reporting
		    Attempt to convert between text & numbers
		when _FillValue attribute of a character variable set to
		the empty string "".

		Made ncgen tests more stringent and fixed various bugs
		this uncovered.  These included bugs in handling byte
		attributes on platforms on which char is unsigned,
		initializing scalar character variables in generated C
		code under "-c" option, interspersing DATA statements
		with declaration statements in generated Fortran code
		under "-f" option, handling empty string as a value
		correctly in generated C and Fortran, and handling
		escape characters in strings.  The Fortran output under
		the "-f" option was also made less obscure and more
		portable, using automatic conversion with netCDF-3
		interfaces instead of "BYTE", "INTEGER*1", or
		"INTEGER*2" declarations.

		Fixed a C++ interface problem that prevented compiling
		the C++ library with Digital's cxx compiler.

		Made ncgen "make test" report failure and stop if test
		resulted in a failure of generated C or Fortran code.

                The file that you are now reading was created to contain
                a high-level description of the evolution of the
                netCDF-3 package.

3.3	1997-05-15

		The production version of the netCDF-3 package was
		released.

                A comparison of the netCDF-2 and netCDF-3 releases can
                be found in the file COMPATIBILITY.
