2004-09-23  Charlie Zender  <zender@uci.edu>

	* Remove extra carriage returns from ncks global metadata printing
	in nco_prn_att()

	* Declare nco_pck_map as shared in OpenMP loop

2004-09-12  Charlie Zender  <zender@uci.edu>

	* ncks: Print data to screen when only input file is specified

	* Add NC_BYTE to types of variables with known ndrv in nco_var_pck()

2004-09-08  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_9
	Changes since nco-2_9_8: 1. ncbo threading 2. ncpdq -P packing

	* Fix problems with building --enable-*-custom

	* Fully merge packing policy/map decisions into nco_var_lst_dvd()
	This should mean that fix/prc distinction is fully integrated

2004-09-07  Charlie Zender  <zender@uci.edu>

	* Finish packing map documentation. Ready to release.

	* Cause ncpdq in.nc out.nc to default to pck_plc=all_new rather
	than aborting

	* Re-arrange debugging info verbosity levels to be sane

	* Fix erroneous triggering of PURE_MSS_VAL_FLD in nco_var_pck()

2004-09-06  Charlie Zender  <zender@uci.edu>

	* Verified that all packing except NC_XXX->NC_CHAR works pretty well

	* Add new nco_pck_map types hgh_byt and flt_byt to nco_pck_plc_typ_get()

	* Showed packing three_dmn_var_dbl to NC_BYTE works better than
	packing to NC_CHAR

	* Verified packing/unpacking for: NC_INT->NC_SHORT,
	NC_DOUBLE->NC_INT, NC_DOUBLE->NC_BYTE, NC_INT->NC_BYTE,
	NC_SHORT->NC_BYTE, 

	* Allow add_offset, scale_factor to be any type but NC_BYTE and
	NC_CHAR in nco_pck_dsk_inq(). This fixes NC_INT->NC_SHORT unpacking.

	* Learned that NC_INT->NC_SHORT does not work. 
	Presumably all non-floating point packing is suspect until verified

	* Verified each pack map works without memory problems for all_new policy

	* Allow packing to NC_INT in nco_var_pck()

	* Successfully segregated var_fix from var_prc

	* Change nco_pck_typ to nco_pck_plc for "Packing Policy"

	* Incorporated packing policy decisions in nco_var_lst_dvd() to
	segregate var_fix from var_prc. Still not working but
	infrastructure in place.

	* Deprecated nco_is_packable() in favor of more flexible
	nco_pck_plc_typ_get() which accounts for policy desired by nco_pck_map

	* Eliminated all memory problems in ncpdq 
	Verified no excess large blocks remain at program end
	Valgrind rules!

	* Update missing value in nco_var_upk_swp()

	* Handle all nco_pck_typ cases in nco_var_dfn() and end clause of ncpdq

	* Remove dangling pointer from ncpdq all_xst clause

	* Update ncpdq man page. Document -M most everywhere.

2004-09-05  Charlie Zender  <zender@uci.edu>

	* Create nco_pck_map_get() to parse nco_pck_map arguments to ncpdq -M option

	* Introduce nco_pck_map to nco_typ_pck_get() 
	Only default type nco_pck_map_hgh_sht currently works

	* Move high level packing routines from ncpdq.c to nco_pck.c

	* Finished initial ncpdq packing documentation

	* Verified unpacking complete missing values works, with both scalars and arrays

	* Fixed packing pure missing values fields in nco_var_pck()

	* Replaced duplicated noisy text branches in packing routines with
	ugly goto's and single blocks of code

	* Add ncpdq packing/unpacking test to nco_tst.pl

	* Fix unpacking variables with only add_offset in nco_pck_dsk_inq()

2004-09-04  Charlie Zender  <zender@uci.edu>

	* Do not attempt unpacking unless variable already packed

	* Replace USE_EXISTING_PCK in nco_var_pck() with PCK_VAR_WITH_NEW_PCK_ATT

	* Implement synonyms ncpack, ncunpack, and option -U and xst_new

	* More robust handling of cases when only one packing attribute	defined

	* Cast missing_value to double before double comparisons in nco_var_pck()

2004-09-03  Charlie Zender  <zender@uci.edu>

	* NULLify dangling pointer to Fix double-free()'d value buffer problem

2004-09-02  Charlie Zender  <zender@uci.edu>

	* Finished implementing packing types: all_new, all_xst, upk 

2004-09-01  Charlie Zender  <zender@uci.edu>

	* Worked on re-packing already packed variables. Almost working.

2004-08-25  Charlie Zender  <zender@uci.edu>

	* Added nco.css contributed by Alper Ersoy of the TeXInfo project
	Does not quite work yet, but points the right direction for XML compatibility

2004-08-22  Charlie Zender  <zender@uci.edu>

	* Include sys/types.h prior to regex.h on Mac OS X

2004-08-15  Charlie Zender  <zender@uci.edu>

	* ncpdq all_new packing seems to work. Next need to get unpacking working.

	* Alter nco_var_dfn() to define dummy scale_factor, add_offset for ncpdq

2004-08-14  Charlie Zender  <zender@uci.edu>

	* Cleanly segregate pack from re-order functionality in ncpdq
	Assume both are not performed in same ncpdq invocation

	* Pass nco_pck_typ from all operators to nco_var_lst_dvd()

2004-08-11  Charlie Zender  <zender@uci.edu>

	* Create nco_pck_mtd() to off-load metadata manipulation

2004-08-10  Charlie Zender  <zender@uci.edu>

	* Copy packing infrastructure from ncra to ncpdq

	* Finished thr_nbr documentation

	* Threaded main variable loop of ncbo

2004-08-08  Charlie Zender  <zender@uci.edu>

	* Changed some formats from %e to %g in nco_tst.pl so that Solaris
	cc executables will pass tests

2004-08-07  Charlie Zender  <zender@uci.edu>

	* Added first ncatted test to nco_tst.pl

	* Added lots more yummy ncpdq documentation

	* cvs tag -c nco-2_9_8
	Changes since nco-2_9_7: 1. ncpdq, 2. ncwa --msk_sng consolidated
	mask switch, and 3. C99 

	* Fixed bug where nco_var_dmn_rdr_mtd() returned before reversal
	flag list created for 1-D arrays. This cause reversal of 1-D
	arrays to fail (do nothing).

	* Made valiant stab at ncpdq documentation. Ran out of steam.

2004-08-06  Charlie Zender  <zender@uci.edu>

	* split ncpdq var list into var_fix and var_prc like in ncwa
	All tests appear to work

	* Fixed last known ncpdq problem caused by indexing var_prc_out
	list with var_out index 

	* Added duplicate dimension flag has_dpl_dmn to var_sct

	* Handling situations where re-order list caused non-record
	variables to become record variables was completely broken.
	Inserted mucho logic which implements new policies:
	1. First record variable change request is honored
	2. All subsequent requests are ignored and produce warnings

2004-08-04  Charlie Zender  <zender@uci.edu>

	* Fix ncpdq bug where record coordinate matching was done with
	strstr() instead of strcmp()

	* Fix ncpdq dimension reversal list processing

	* Make all error exits go through nco_err_exit() so that error
	exits uniformly call exit(EXIT_FAILURE) or abort()

	* Fixed diagnostic bug in nco_var_dfn() which would dump core when dbg_lvl=3
	and prg=ncwa

	* Fix ncwa bug introduced in nco_var_dmn() last week.
	nco_tst.pl completes successfully again.

	* Improved/updated man_end.txt and catenated onto end of all man pages

	* Wrote ncap man page ncap.1

	* Added ncpdq.1 man page
	View with nroff -man ~/nco/man/ncpdq.1

2004-08-02  Charlie Zender  <zender@uci.edu>

	* Implemented dimension reversal with negative signs in ncpdq

	* Changed dimension re-order switch from -z to -a like ncwa

	* Fixed NCO-wide bug where I used strstr(sng1,sng2) as boolean
	instead of !strcmp(sng1,sng2) 
	This bug occurred in:
	nco_var_cnf_dmn() three times
	nco_var_stretch() three times
	ncbo.c() once time
	When used as a boolean strstr(sng1,sng2) is approximately
	interchangeable with !strcmp(sng1,sng2). 
	Exceptions occur where sng1 is a substring of sng2, in which case
	the dimensions would be different but strstr() would return a match.
	In all locations, the bug appears to have caused extra work, or to
	have incorrectly allowed the above exception where one dimension
	is a substring of another, but in no location does the bug appear
	to have caused wrong answers.

2004-07-29  Charlie Zender  <zender@uci.edu>

	* Eliminate ostensibly wrong memmove() in ncwa/ncpdq avg/rdr list processing

	* Rewrote appropriate ncpdq routines to handles record dimension
	re-definitions correctly 

2004-07-28  Charlie Zender  <zender@uci.edu>

	* Broke nco_var_dmn_rdr() into two sequential functions
	nco_var_dmn_rdr_mtd() for metadata and nco_var_dmn_rdr_val() for
	values. Calling routine (ncpdq) now holds required intermediate
	information in dmn_idx_out_in.

	* Implement -DNCO_ABORT_ON_ERROR in nco_err_exit() so developers
	can perform easy tracebacks

        * Add AX_CFLAGS_GCC_OPTION(-D_BSD_SOURCE) so default build works

	* Added ncpdq to autoconf build machinery

	* Finish first theoretically working version of ncpdq. 
	Of course, it crashes.

2004-07-27  Charlie Zender  <zender@uci.edu>

	* Merge ncwa dmn_avg list handling into ncpdq for dmn_rdr

	* Removed un-used dimension nbr_dmn_avg == 0 branch from ncwa

2004-07-26  Charlie Zender  <zender@uci.edu>

	* ncpdq now copies files perfectly, just like ncks
	No re-order routines have been turned on---that is next
	Tagged this ncpdq version (1.1) with
	ncpdq_perfect_do_nothing_template
	User ncpdq.c version 1.1 as template for future new operators

	* Require default clauses for switch(prg_id)

	* Created ncpdq.c from stripped version of ncwa.c

2004-07-25  Charlie Zender  <zender@uci.edu>

	* Installed hooks to call nco_var_dmn_rdr() in ncks
	May need to create new operator to use this capability

	* Added skeleton nco_prs_rdr_lst()

	* First complete draft of nco_var_dmn_rdr() compiles warning-free

2004-07-21  Charlie Zender  <zender@uci.edu>

	* Implement infrastructure for dimension re-ordering routine
	nco_var_dmn_rdr() 

2004-07-19  Charlie Zender  <zender@uci.edu>

	* Create nco_bnch.sh to benchmark big file operations

	* Implement preprocessor method in nco.h to disable restrict

	* big.nc "restrict" test with yields incorrect answers with AIX xlc
	
	* Implement restrict in nco_var_cnf_dmn()

	* Change default xlc from -qlanglvl=extended to -qlanglvl=extc99
	to support C99 features like restrict. This does not seem to
	bother xlC, which appears to ignore the -qlanglvl=extc99 switch.

	* Implement restricted pointers throughout arithemetic routines

	* Introduced restrict type qualifier into pointer unions

	* cvs tag -c nco-2_9_7_pre_restrict
	Last tag prior to implementing C99 features

	* const'ify arithmetic counters used only for normalization

	* Standardized arithmetic prototypes in preparation for implementing
	restricted pointers

2004-07-08  Charlie Zender  <zender@uci.edu>

	* nco.texi: Correct mix-up of -T and -t options in documentation

2004-07-06  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_7
	Changes since nco-2_9_6: Read MFO input files from stdin, add 
	more attribute functionality to nco_c++, turn threading on in ncra

	* Updated Makefile to use sophisticated make depends rules that
	handle plusses and slashes in filenames better

	* Added libtest, libtst targets to Makefile

	* Change from C++ to CXX in Makefile

	* Finished replacing %zu's with %lu's with casts to (unsigned long)

	* Provide definitions of fabsf(), sqrtf() in nco_var_rth.c from
	nco_flt_rth.h rather than from special #ifdefs 

2004-07-04  Charlie Zender  <zender@uci.edu>

	* Changed some %zu's back to %lu's with (unsigned long) casting
	Will I have to do this everywhere since %zu is non-ISO?

2004-07-03  Charlie Zender  <zender@uci.edu>

	* Add undocumented -Y, --pseudonym, or --prg_nm switch to ncra
	to force it to behave as ncea or ncrcat

2004-07-02  Charlie Zender  <zender@uci.edu>

	* Change default from OMP=N to OMP=Y in old Makefile

2004-07-01  Charlie Zender  <zender@uci.edu>

	* Changed configure.eg to enable OpenMP on AIX. 'make' and 'make
	install' now work but 'make test' fails with zillions of linker errors: 

        rtld: 0712-001 Symbol omp_get_num_threads was referenced
        from module /u/zender/nco/src/nco/.libs/libnco.so(), but a runtime definition
        of the symbol was not found.

	* AIX xlc does not activate OpenMP unless -qsmp=omp argument used

	* Fixed AIX xlc_r compiler pragma warnings by removing
	/usr/vacpp/include from CPPPATH in configure.eg.
	I think nco_c++ used to need this to find <valarray>, but that no
	longer seems to be the case. Simpler is better.

	* Improve LFS test in big.cdl. 
	Created version that creates large files (> 4 GB) on small-RAM 
	(< 4 GB) systems, and NCO seem OK to deal with resulting files. 

	* Added $dbg_lvl variable to print nco_tst.pl tests during execution

	* Fixed nco_tst.pl test hanging while waiting for interactive
	response to overwrite query

	* Fix brokenness in nco_fl_utl:nco_fl_lst_mk() which triggered
	segfaults in non-multi-file-operators when no input filename was
	offerred, i.e., when there were no positional arguments

	* Fix brokenness in nco_tst.pl caused by renaming -o to -T

	* Changed old (only since 2.9.6) ncwa -t to ncwa -T so can use -t
	for threads consistently everywhere

	* Pass thr_nbr on command line

	* Added LFS stub to nco.texi, pass LFS info from configure.in

	* Added large file support LFS to custom Makefiles. Rorik added it
	to autoconf. 

2004-06-30  Charlie Zender  <zender@uci.edu>

	* Add nco_openmp_thread_number global attribute to threaded
	programs if HISTORY_APPEND is true

	* nco_openmp_ini() is now mandatory for any program using OpenMP

	* Fixed "variable "_iob" has undefined data scope"
	compiler warnings by passing stdout/stderr filehandles as local
	variables scoped shared in OpenMP parallel clauses

2004-06-29  Charlie Zender  <zender@uci.edu>

	* Update OpenMP directives in ncra in preparation for adding
	robust OpenMP diagnostics

2004-06-28  Charlie Zender  <zender@uci.edu>

	* Remove configure.in AC_CHECK_LIB check for cosf() in libC.a. 
	NCO used to get the float functions from this library but it turns
	out that all of these system-supplied float functions are broken
	on AIX. NCO now uses it's own version of these functions.
	Fixes TODO ncap57.
	
2004-06-25  Charlie Zender  <zender@uci.edu>

	* Added ln() as synonym for log() in ncap

	* Fix size_t format printing in memory allocation routines

2004-06-23  Charlie Zender  <zender@uci.edu>

	* Never solved problem with reading o/a/e response after using
	stdin for filenames.

2004-06-19  Charlie Zender  <zender@uci.edu>

	* Reworked stdin to avoid mixing string and character input.
	  Interactive responses to "overwrite (o/a/e)?" questions must now be
	  terminated with carriage return (and are case-insensitive)

	* Add nco_put_att<int,short,long> functions

	* Add nco_fl_info_get() to nco_fl_mk_lcl()

	* Add readfile, realpath, canonicalize_file_name to AC_CHECK_FUNCS

2004-06-18  Charlie Zender  <zender@uci.edu>

	* Added new -H section to documentation

	* Change FORTRAN_STYLE to FORTRAN_IDX_CNV

2004-06-17  Charlie Zender  <zender@uci.edu>

	* Added nco_fl_lst_att_cat() to add input file list global attribute

	* nco_fl_ls_mk() reads input file list from stdin when appropriate
	for multi-file operators. 
	For some reason it no longer pauses for manual stdin, however.

2004-06-16  Charlie Zender  <zender@uci.edu>

	* Fixed numerous errors in xargs example

	* Change nco_lib_tst.c to libnco_tst.c and add libnco_c++_tst.cc

2004-06-15  Charlie Zender  <zender@uci.edu>

	* Check for strdup() and strcasecmp() with NCO_CHECK_FUNCS rather
	than AC_CHECK_FUNCS so they are protected by NEED_* rather than
	HAVE_* tokens. This improves portability of libnco by reducing
	number of tokens non-NCO programs need to define in order to link
	to libnco.a. This make nco_lib_tst simpler.

	* Add bld/nco_lib_tst.c to test libnco offline

	* cvs tag -c nco-2_9_6
	Changes since nco-2_9_5: Add -o fl_out option, change ncwa -o
	meaning, AMD64 build tweaks

2004-06-14  Charlie Zender  <zender@uci.edu>

	* Move old ncwa -o switch to -t, add synonyms --truth_condition,
	--msk_cmp_typ, delete old synonyms --op_cmp, --compare, --cmp.

	* Change warning size for large filenames from 80 to 255 characters

	* Modify nco_fl_lst_mk() so operators accept output filename
	specified with -o (or --fl_out or --output), or as last positional
	argument (traditional behavior). Finished TODO#58.

2004-06-13  Charlie Zender  <zender@uci.edu>

	* Added demonstration script to handle large numbers of input
	files to nco.texi

2004-06-06  Charlie Zender  <zender@uci.edu>

	* Implement -m64 option for ABI=64 on LINUXAMD64

2004-06-02  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_5
	Changes since nco-2_9_4: ncflint interpolation is commutative,
	libnco_c++ *.hh headers installed

	* Install libnco_c++ *.hh headers in include directory.

	* Explicitly restrict license of libnco_c++.h to GPL version 2

	* Change behavior of ncflint and nco_var_add_tll_ncflint() to
	return missing_value when either input is missing

2004-06-01  Charlie Zender  <zender@uci.edu>

	* nco.texi: Documented funny ncflint behavior when one variable is missing 

	* Implement nco_mss_val_cnf() in ncflint to handle corner cases
	where same variable has different missing values in each file

2004-05-22  Charlie Zender  <zender@uci.edu>

	* Print shared/static configuration with -r

	* Support newer AC_INIT syntax

	* Default configure.in AIX GCC ABI is 64-bit with -maix64
	Fixes TODO bld31.

2004-05-21  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_4
	Changes since nco-2_9_3: ncecat works on pure scalar files

	* Allow AIX builds with GCC in bld/Makefile

	* Rearranged nco_tst.pl, added ncecat test, activated ncbo,
	ncea, ncflint tests. Fixes TODO nco332.

2004-05-20  Charlie Zender  <zender@uci.edu>

	* Patched ncecat to address scalar file concatenation problem
	Fixes TODO nco331.

	* Set rec_dmn->is_rec_dmn=True; in ncecat.c
	This appears to have been a bug that never triggered any failures

2004-05-13  Charlie Zender  <zender@uci.edu>

	* Move blurb from nmn_get to last info message

2004-05-05  Charlie Zender  <zender@uci.edu>

	* Implement AMD64 pgcc/pgCC support in build mechanism

2004-05-04  Charlie Zender  <zender@uci.edu>

	* Change cvs.nco.sourceforge.net to cvs.sf.net in accord
	with new SourceForge BIND 9-induced policy

2004-04-19  Charlie Zender  <zender@uci.edu>

	* Build NCO on sand.ess.uci.edu, SuSE Linux 9.0 dual opteron with
	GCC 3.1.1 for x86-64

        * Put CEWI's in nco_lmt.c to allow builds with GCC and
	--enable-*-custom when UDUnits not installed 

2004-04-13  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_3
	Changes since nco-2_9_2: ncra/ncea arithmetic works when
	missing_value equals zero or any intermediate sum

	* Closed bugs nco121 and nco325

	* Segregate nco_var_add_tll() into nco_var_add_ncra() (which
	checks only current record against missing_value) and
	nco_var_add_ncflint() (which checks both arguments against
	missing_value). This fixes bug where record averages were zero
	when missing_value=0.0.

	* Switch argument order in nco_opr_drv() for clarity/consistency

2004-04-06  Charlie Zender  <zender@uci.edu>

	* Updated News & Announcements section

2004-03-23  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_2
	Changes since nco-2_9_1: Fix S/V, S%V, S^V, workaround broken
	UDUnits installations

	* Correctly implement non-commutative ncap S%V modulo

	* Correctly implement non-commutative ncap S^V empowerment

	* Document promotion for empowerment (sounds more political than
	it is) in nco.texi

2004-03-17  Charlie Zender  <zender@uci.edu>

	* Change nco_lmt.h from HAVE_UDUNITS_H to ENABLE_UDUNITS 
	to make bld/Makefile builds work again when udunits is not
	installed. 

2004-03-16  Charlie Zender  <zender@uci.edu>

	* Correctly implement non-commutative ncap S/V division

2004-03-12  Charlie Zender  <zender@uci.edu>

	* Verify Solaris does autobuild correctly with up-to-date bison 
	and when UDUnits workaround is installed.
	
2004-03-11  Charlie Zender  <zender@uci.edu>

	* Re-do UDUnits logic in configure.in to ignore broken UDUnits
	installations and build successfully (with UDUnits, of course).

	* Print variable names when writes and reads fail in nco_c++

2004-03-10  Charlie Zender  <zender@uci.edu>

	* Handle corner case in nco_lmt.c where HAVE_UDUNITS_LIB is
	defined but HAVE_UDUNITS_H is not

2004-03-07  Charlie Zender  <zender@uci.edu>

	* Tweaked DODS library logic in configure.in to support AIX
	Link to -lC on AIX instead of -lstdc++ as on Linux

2004-03-04  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_1
	Changes since nco-2_9_0: prp_sei, fix packing bug with ncwa

2004-02-29  Charlie Zender  <zender@uci.edu>

	* Described pending NCO proposals in NUG

	* Described how to donate in NCO User's Guide (NUG)

	* Added/explained OPeNDAP vs. DODS in documentation

	* Rorik modified nco_cnf_typ.c: nco_typ_cnv_rth() to fix bug with 
	arithmetic on packed data in ncwa. Probably fixed same bug with
	other artithmetic operators (besides ncap) as well.

2004-02-25  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_9_0
	Changes since nco-2_8_8: CF convention, ncap corner cases,
	Deactivate non-ANSI __GNUC__ extensions, make check nco_c++

	* Implement CEWI workarounds so tst.cc builds warning-free and
	make check works again with --enable-*-custom

	* Deactivate __GNUC__ extensions for rank reduction in nco_var_avg.c
	Replace #ifndef __GNUC__ with #define FXM_NCO315 1; #ifdef FXM_NCO315
	Will change back to original code only when stack memory problem
	is fully understood/solved/benchmarked to improve on ANSI code branch
	
2004-02-10  Charlie Zender  <zender@uci.edu>

	* Make Convention CF-1.0 behave same as existing CSM convention

2004-02-08  Charlie Zender  <zender@uci.edu>

	* Make TODO list easier to understand to facilitate contributions

	* Systematically "symmetrize" all ncap arithmetic operations so
	var OP var, var OP scv, and scv OP var are handled for all operations. 

	* ncap handles var % scv, scv % var

	* ncap handles scv / var

	* Add nco_var_var_pwr() and nco_var_pwr() functions to allow
	empowerment of two variables = var_1^var_2 and scv^var

	* Change CSM to CCSM most everywhere

2004-01-30  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_8_8
	Changes since nco-2_8_7: --enable-[optimize/debug]-custom works
	again 

	* Remove -fshort-enums from GCC switches as per Rorik. 
	It breaks ABI and caused mysterious failures because libnetcdf.a
	must be compiled with same size enums as NCO apparently.

2004-01-20  Charlie Zender  <zender@uci.edu>

	* Implement DODS 3.4 switches as default in bld/Makefile

2004-01-19  Charlie Zender  <zender@uci.edu>

	* Use valgrind 2.1 to identify and fix small leaks: 
	Free prg_nm in nco_exit_gracefully()

2004-01-16  Charlie Zender  <zender@uci.edu>

	* nco_netcdf.c: Do not initialize rcd unless not doing so might cause CEWI

2004-01-15  Charlie Zender  <zender@uci.edu>

	* Change dods.sh from RC6 to 3.4 final, and pre-clean

	* Correct documentation of covariance procedure

2004-01-13  Charlie Zender  <zender@uci.edu>

	* Change AIX xlC enable-optimized-debug from -O5 to -O3 so shared
	libraries work again

	* cvs tag -c nco-2_8_7
	Changes since nco-2_8_6: Default GCC builds work again,
 	ncap packing works again

	* Fix GCC compiles when enable-*-custom	is not specified. This
	should fix reported Cygwin build problem. 

	* nco_pck() uses tally-free arithmetic. Fixes ncap packing
	bug introduced in 2.8.4.

2004-01-12  Charlie Zender  <zender@uci.edu>

	* Only manually prototype lexer function in ncap_lex.l if
	enable-*-custom build option specified with GCC.
	Fixes build problems with cygwin 

	* Document make install-strip in doc/README as per Rorik

	* cvs tag -c nco-2_8_6
	Changes since nco-2_8_5: Add -Werror to GCC compiles, fix AIX and
	SGI builds

	* Wrap new ncap_lex.l content in ifdef __GNUC__ since breaks on
	AIX, SGI. AIX and SGI now build again.

2004-01-11  Charlie Zender  <zender@uci.edu>

	* NCO compiles warning free again so add -Werror to GCC custom flags

	* Add and elaborately comment on multiple yylex() prototypes
	required to build ncap warning-free with pedantic debugging flags.

	* Use correct token, NCO_MSA_H, instead of NCO_VAR_UTL_H, in nco_msa.h
	This fixes all remaining implicit function declaration warnings
	Until now, no routines in nco_msa.c had prototypes known outside
	of that file unit. Unlikely that this caused problems since no
	known casts were employed in prototypes. This demonstrates the
	usefulness of -Werror. Without it, this bug would still be there.
	
2004-01-10  Charlie Zender  <zender@uci.edu>

	* Conjoin setting GCC flags in configure.in, avoid duplication

	* Systematize header file names

	* Improved dods.sh documentation

2004-01-09  Charlie Zender  <zender@uci.edu>

	* Unconditionally include nco_lst_utl.h and nco_sng_utl.h in
	nco_att_utl.h (now that nco_prs_aed_lst() is there).

	* Moved system headers from nco_lmt.c to nco_lmt.h

2004-01-08  Charlie Zender  <zender@uci.edu>

	* Give DODS example in -R documentation

	* Add -R to correct -R examples in documentation 

2004-01-07  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_8_5
	Changes since nco-2_8_4: DODS support, configure.in rewrite,
	ncap attribute assignment fix

	* Remove -Dinline= so gcc CFLAGS may be reused for g++
	This fixes make install problem with --enable-optimize-custom

2004-01-06  Charlie Zender  <zender@uci.edu>

	* Improved type conversion documentation

2004-01-04  Charlie Zender  <zender@uci.edu>

	* Qualify GPL license as Version 2 everywhere

	* Prototype main.c functions prior, rather than post, definition in nco.h

	* prefix ncap global and file scope variables with ncap_ to reduce
	namespace pollution

	* De-linted nco_c++ library by adding rcd+=0 CEWI statements

2004-01-03  Charlie Zender  <zender@uci.edu>

	* Fix bug where nco_put_varm() called nc_get_varm_float() instead
	of nc_put_varm_float() 

	* Replace nco_netcdf.h prototypes with type-safe const'ified prototypes

2004-01-02  Charlie Zender  <zender@uci.edu>

	* Use sqrtf() where appropriate

	* Preserve const'ness of string literal assignments and returns

	* Use trigraph return in qsort() comparison functions nco_cmp_*()
	to completely avoid arithmetic and overflows

2004-01-01  Charlie Zender  <zender@uci.edu>

	* Improve qsort() comparison functions nco_cmp_*() based on
	responses to comp.lang.c thread 20040101:
	1. Avoid overflow conditions by not performing subtraction
	2. Preserve const-ness by using comparison rather than using 
	casting and subtraction
	
2003-12-29  Charlie Zender  <zender@uci.edu>

	* De-lint code with --enable-debug-custom
	Fixed sloppy casts, signed/unsigned comparisons, missing const's
	in nearly all source code.

	* make dst_cln cleans volatile autotools build files in root directory

	* Add top-level file descriptions to MANIFEST

	* Expand GNU triplet names to specific architectures tested (i.e.,
	use more restrictive triplets)

	* Add correct compiler and OS criteria for custom compiler switches

	* Make --enable-debug-custom set --enable-debug-symbols

	* Replaced deprecated AC_HELP_STRING with AS_HELP_STRING

2003-12-28  Charlie Zender  <zender@uci.edu>

	* Update copyright years to 2004, tweak GPL license message

2003-12-27  Charlie Zender  <zender@uci.edu>

	* Perform extensive self-diagnostic check of compile-time
	pre-processor configuration settings in	nco_ctl.c:nco_lbr_vrs_prn().
	Check results displayed with -r, e.g., ncks -r

2003-12-26  Charlie Zender  <zender@uci.edu>

	* Add new tokens to config.h: ENABLE_[OPTIMIZE,DEBUG,EXTREME]

	* Clean up and comment configure.in

2003-12-23  Charlie Zender  <zender@uci.edu>

	* Modified Rorik's script and added to distribution as doc/dods.sh

	* Updated/improved DODS section in manual

2003-12-01  Charlie Zender  <zender@uci.edu>

	* Document hyperslab bug in 2.7.3--2.8.3 on homepage
	
	* Document NCAR SCD TCG support on homepage

2003-11-26  Charlie Zender  <zender@uci.edu>

	* Rorik fixed install to remove links before install. Fixes
	install on Solaris.

2003-11-25  Charlie Zender  <zender@uci.edu>

	* Squelch "declared but never referenced" warnings on IRIX in nco_utl.cc

	* cvs tag -c nco-2_8_4
	Changes since nco-2_8_3: Fix index-based hyperslab bug, reduce
	ncap memory usage to 2*sizeof(var) for binary operations

	* Sourceforge made debian/rules executable fixes TODO #280

	* Rorik fixed index-based hyperslabbing bug introduced in 2.7.3
	Fixes TODO #286, #289

	* Specify success correctly for ncap T42 test 

2003-11-24  Charlie Zender  <zender@uci.edu>

	* Add ncks test 14 to check for hyperslabbing problems

2003-11-23  Charlie Zender  <zender@uci.edu>

	* Change cerf to erfc in documentation. Dyslexia strikes again.

	* Add example documentation of intrinsic ncap math functions

2003-11-21  Charlie Zender  <zender@uci.edu>

	* Henry reduced ncap memory usage in binary operations to
	2*sizeof(var). Also removed superfluous (for now) tally allocation
	in ncap_var_init().

	* Beefed up memory usage section in nco.texi

2003-11-20  Charlie Zender  <zender@uci.edu>

	* Implement nco_malloc_err_hnt_prn()

	* Implemented nco_malloc_dbg() in ncap_utl

	* Created nco_malloc_dbg() for alternative to nco_malloc_flg().
	This simplifies calling routines by moving most diagnostic
	handling to nco_malloc_dbg().

	* Remove two more overly scary packing warnings

2003-11-19  Charlie Zender  <zender@uci.edu>

	* Rorik replaced nco_tst.sh with nco_tst.pl, completing TODO #202

2003-11-16  Charlie Zender  <zender@uci.edu>

	* Add LINUXAMD64 to support AMD Opteron

	* Update Sourceforge documentation

2003-11-14  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_8_3
	Changes since nco-2_8_3: memory leaks, regressions fixed

	* Fixed ncwa, ncbo regressions in nco_tst.sh

	* Rorik found and I fixed little nco_var_lst() memory leak

	* Rorik and Henry found and fixed huge ncap memory leak

2003-11-11  Charlie Zender  <zender@uci.edu>

	* Add nco_mmr_stt() hook call to all memory routines

2003-11-10  Charlie Zender  <zender@uci.edu>

	* Add debian docs to make tags target

	* Remove qualifying warning about packed variables from nco_pck.c

2003-11-09  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_8_2
	Changes since nco-2_8_1: missing_values handled better

	* Applied nco_mss_val_cnf() to ncbo to fix TODO #274

	* Wrote nco_mss_val_cnf() to change missing_value of var2, if any,
	to missing_value of var2, if any, before arithmetic operation.

2003-11-05  Charlie Zender  <zender@uci.edu>

	* Remove ncap_lex.c, ncap_yacc.[ch] from .tar.gz file created by nco_dst.pl

2003-11-04  Charlie Zender  <zender@uci.edu>

	* Moved DODS problem note to homepage

2003-10-11  Charlie Zender  <zender@uci.edu>

	* Add section on union of two files

	* Complete named HTML sections for each node in nco.texi

2003-09-16  Charlie Zender  <zender@uci.edu>

	* Add URLs to named sections in HTML comments in nco.texi

	* Add verbose errror message and HINT for NC_ERANGE errors

2003-09-03  Charlie Zender  <zender@uci.edu>

	* Makefile (ABI): Change default ABI to 64

2003-09-02  Charlie Zender  <zender@uci.edu>

	* Change default HTML production from texi2html to makeinfo

2003-09-01  Charlie Zender  <zender@uci.edu>

	* Clean up nco.texi

	* Expand regex documentation

2003-08-31  Charlie Zender  <zender@uci.edu>

	* Correct some regex example errors in nco.texi

2003-08-29  Charlie Zender  <zender@uci.edu>

	* nco.texi: Added #sections in English to nco.html for easy direct
	referencing of man pages

2003-08-28  Charlie Zender  <zender@uci.edu>

	* Add section on ncbo portability

2003-08-27  Charlie Zender  <zender@uci.edu>

	* Improve ncbo documentation

	* cvs tag -c nco-2_8_1
	Changes since nco-2_8_0: variable wildcarding

2003-08-21  Charlie Zender  <zender@uci.edu>

	* Quote backslash character with backslash in nco_var_lst.c

	* Add skeleton ncap.1 man page to satisfy autotools 'make install'

	* Bring bld/Makefile up-to-date with wildcarding, getopt changes

2003-08-20 Henry Butowsky <henryb@ntlworld>

	* Rolled out variable wildcarding to all operators.
	  Configure script checks for presence of regular expressions lib regex.h

2003-08-16  Charlie Zender  <zender@uci.edu>

	* Verified autotools builds fine again on SGI, AIX

	* Straighten out getopt_long() preprocessor logic to work with
	architectures with getopt.h but no getopt_long() (SGI, AIX)

2003-08-15  Charlie Zender  <zender@uci.edu>

	* Rorik synchronized shared library numbering with NCO version number

	* Document wildcarding in nco.texi

2003-08-14  Henry Butowsky  <henryb@ntlworld.com>

	* Added wildcarding of variables to ncks 

2003-08-13  Charlie Zender  <zender@uci.edu>

	* Make nco_malloc_flg() return NULL when malloc() returns ENOMEM

	* cvs tag -c nco-2_8_0
	Changes since nco-2_7_4: ncbo, Debian integration

	* Add Debian package uploads to nco_dst.pl

	* Add Debian packages homepage

	* Add developer autoconf-automake-configure-make example to configure.eg

2003-08-03  Charlie Zender  <zender@uci.edu>

	* Finish first cut at ncbo documentation in nco.texi

2003-08-02  Charlie Zender  <zender@uci.edu>

	* Rename val_conform_type() to val_cnf_typ()

	* All regressions due to introduction of ncbnr appear to be fixed

	* Correct nco_tst.sh procedure for ncap 

	* Restore nco_op_avg inadvertently removed from nco_op_typ_get()

2003-08-01  Charlie Zender  <zender@uci.edu>

	* Fix ncbnr case statement and verifiy ncbnr works for +-*/

2003-07-29  Charlie Zender  <zender@uci.edu>

	* Verify ncdiff and ncbnr -y sbt work as expected but problems
	exist with add, mult, and, presumably, divide.

	* Make ncdiff symbolic link to ncbnr for backward compatibility

2003-07-27  Charlie Zender  <zender@uci.edu>

	* Create ncbnr operator

	* Rename nco_var_add_no_tally() to nco_var_add()

	* Rename nco_var_add() to nco_var_add_tll()

2003-07-20  Charlie Zender  <zender@uci.edu>

	* Changed math table printing from -r to -f in ncap so that -r is
	consistent among all operators. Documented this in nco.texi.

2003-07-06  Charlie Zender  <zender@uci.edu>

	* Removed FTP requirement from make tst. Create nco_tst.sh creates
	foo.nc from scratch without needing to FTP nco_tst.nc. 
	Test involving FTP is now called make tst_ftp.

2003-07-04  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_7_4
	Changes since nco-2_7_3: Better AIX autotools support, UDUnits fix

2003-07-01  Charlie Zender  <zender@uci.edu>

	* Add --Mtd switch for global metadata, update nco.texi accordingly

2003-06-24  Charlie Zender  <zender@uci.edu>

	* Added PayPal donation button, updated homepage

2003-06-23  Charlie Zender  <zender@uci.edu>

	* Rorik fixed UDUnits handling of hyperslab specifications in
	floating point format, e.g., 1.23e-7. 

2003-06-15  Charlie Zender  <zender@uci.edu>

	* Update copyright headers

	* Change GPL version 2 or later license to version 2 only.

	* Clean up some MSA namespace

	* Document supported non-ANSI functions (e.g., acosh(), trunc())
	in nco.texi 

	* Changed --nocoords to --no-coord or --no-crd. 
	Decided all disabling actions will have same keyword as enabling
	action except switch will start with --no-XXX

2003-05-30  Charlie Zender  <zender@uci.edu>

	* Add CPP_TKN_OS += -I/usr/vacpp/include for nco_c++ on AIX

	* AIX autotools modifications by Jim

	* Jim Edwards completed Autoconf TODO 17. Fix CXX valarray to work on AIX

2003-05-21  Charlie Zender  <zender@uci.edu>

	* Replaced malloc() with nco_malloc_flg() in about 10 locations
	where malloc() ENOMEM errors are handled directly by the calling
	code for additional diagnostics.

2003-05-06  Charlie Zender  <zender@uci.edu>

	* Move RPM-wishlist off high-priority list, add restrictive MSA
	parsing to list as per Shultz request

2003-04-06  Charlie Zender  <zender@uci.edu>

	* Added numerous long option synonyms in CSZ abbreviation format
	documented in abb.sty

2003-03-30  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_7_3
	Changes since nco-2_7_2: UDUnits support for "units" attributes

	* Clean up nco_lmt

	* Documented UDUnits feature in User's guide

2003-03-27  Charlie Zender  <zender@uci.edu>

	* Add UDUNITS_LIB, UDUNITS_INC CLI args to bld/Makefile

2003-03-26  Charlie Zender  <zender@uci.edu>

	* Remove TODO 95. Satisfactorily addressed by Rorik's UDUnits work.

2003-03-25  Charlie Zender  <zender@uci.edu>

	* Made --op_rlt, --cmp, --op_cmp, --compare synonymous with -o for ncwa 

	* Re-arrange output from --usage, --help options

2003-03-24  Charlie Zender  <zender@uci.edu>

	* Put UDUnits stuff on homepage

	* Added bld/Makefile support for UDUnits when UDUNITS=Y

	* Rorik committed UDUnits support for time coordinate limits in hyperslabs

2003-03-19  Charlie Zender  <zender@uci.edu>

	* Remove TODOs 138, 139, 140, 141, 142---all solved or made
	obsolete by Henry's MSA printing algorithm.

2003-03-18  Charlie Zender  <zender@uci.edu>

	* General honing of nco.texi

	* Implemented TeX and TeXInfo macros to keep math variables
	consistent with LaTeX sources. Mostly successful, except Info
	does not like macros inside or macros, e.g., @var{@wndznl{}}

	* cvs tag -c nco-2_7_2
	Changes since nco-2_7_1: disk-based, MSA printing indices work

2003-03-17  Charlie Zender  <zender@uci.edu>

	* Replaced examples in nco.texi with output from MSA printing

2003-03-09  Charlie Zender  <zender@uci.edu>

	* Modifying debian/* files to build with 2.7.x as zender

2003-03-07  Charlie Zender  <zender@uci.edu>

	* Remove -ansi flag from gcc builds because it is (apparently)
	equivalent to -std=c89 and thus conflicts with -std=c99.

2003-03-02  Charlie Zender  <zender@uci.edu>

	* Began Debian-ization of upstream source by populating debian
	directory with nco-2.2.0 Debian package files by Brian Mays
	NB: Files in debian/ are for 2.2.0 (i.e., way out of date)
	We are trying to Debian-ize upstream source for NCO ~2.8.0
	Expect some hiccups when that finally happens
	
	* Insert LINUXARM in Linux portion of bld/Makefile

	* Synchronize Debian nco/doc/man with CVS nco/man

	* Add Debian files by Brian Mays to CVS repository:
 	debian: changelog control convert copyright postinst prerm rules
	bld: linux1 linux2 (appear obsolete and may soon be removed)
	
2003-02-25  Charlie Zender  <zender@uci.edu>

	* Builds cleanly on LINUX, IRIX, AIX

	* Remove unused variables from ncap.[cl], nco_msa.c

	* Clean up nco_att_cpy()

2003-02-05  Charlie Zender  <zender@uci.edu>

	* Change from WARNING to level 1 INFO when wrapped limits
	processed in nco_lmt_evl()

2003-01-29  Charlie Zender  <zender@uci.edu>

        * Documented procedure for computing covariance of two variables
	using http://jisao.washington.edu/data/nco/ as template 

2003-01-20  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_7_1
	Changes since nco-2_7_0: long options on all platforms, packing
	fix for ncap

	* Initiate HPPA support in bld/Makefile

2003-01-19  Charlie Zender  <zender@uci.edu>

	* Fix inconsistent storing of fixed variables that are packed in ncap
	Packed values were being saved in unpacked type without packing attributes	

2003-01-18  Charlie Zender  <zender@uci.edu>

	* Clean up some ncap_utl prototypes

2003-01-14  Charlie Zender  <zender@uci.edu>

	* Updated nco_c++ build instructions and documentation to refer to Makefile.old

	* Changed copyright end year to 2003

2003-01-08  Charlie Zender  <zender@uci.edu>

	* Rorik added conditional compilation of Sittler's getopt_long() 
	where necessary, removed *_GETOPT_LONG tokens from all source code.

2003-01-03  Charlie Zender  <zender@uci.edu>

	* Successfully built NCO 2.7.0 on Redhat 8.0 at HP Testdrive site
	spe141.testdrive.compaq.com. The HP Testdrive site has virtually
	every imaginable combination of hardware and OS, so now NCO may
	be tested on all of these machines. My first test with a new
	architecture, HP-UX (HPPA), failed because of lack of C++
	compiler. Thus Testdrive computers do not appear to be fully
	loaded with reliable compilers. 

2003-01-02  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_7_0
	Changes since nco-2_6_6: long options and multislabbing

2002-12-29  Charlie Zender  <zender@uci.edu>

	* Add rudimentary tests of multislabbing to nco_tst.sh

	* Switch from ~ to @w{} for unbreakable spaces in nco.texi

2002-12-28  Charlie Zender  <zender@uci.edu>

	* Document multislabbing in user's guide

	* Document long options in user's guide

	* Implement more long options in TLA format

	* Henry changed arithmetic in nco_msa to char * arithmetic to
	remove warnings

	* Clean up ncap_utl.c some

2002-12-27  Charlie Zender  <zender@uci.edu>

	* Clean up nco_msa.[ch]. Still need to fix void * arithmetic

2002-12-19  Charlie Zender  <zender@uci.edu>

	* Moved multi-slabbing algorithm to nco_msa.[ch]

2002-12-19  Henry Butowsky  <henryb@ntlworld.com>

	 * First version of multi-hyperslabbing along a single dimension
	 for ncks
	
2002-12-14  Charlie Zender  <zender@uci.edu>

	* Took advantage of NEED_FNC to remove MACOSX kludge in nco_rth_flt.h

	* Merged Rorik's long options mods

2002-11-04  Charlie Zender  <zender@uci.edu>

	* Restore ./configure file from 2.6.5 and re-tag as 2.6.6

2002-10-25  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_6_6
	Changes since nco-2_6_5: ncrename fixes, ncap type conversion

	* Use '.' consistently in .var@.att renaming

	* Changed variable-attribute delimiter in ncrename from ":" to "@"
	to be consistent with ncap

	* Fixed ncrename to not fail when . specified and variable does
	not contain attribute

2002-09-24  Henry Butowsky <henryb@ntlworld.com>

	* Added type conversion functions for attributes and variables
	  byte, char, short, int, float, and double

2002-09-22  Charlie Zender  <zender@uci.edu>

	* info-friendly changes to nco.texi

2002-09-20  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_6_5
	Changes since nco-2_6_4: CRAY and SUN builds

	* Fix SunOS builds in bld/Makefile

2002-09-19  Charlie Zender  <zender@uci.edu>

	* Patches from Len Makin for CRAY
	1. Cray patch for ncap symbol table
	2. Makefile fixes for Cray
	3. nco_tst.sh tweaks
	Applied the Makefile flags to configure.in as well
	
2002-09-17  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_6_4
	Changes since nco-2_6_3: MACOSX builds, SGI, NEC tweaks

	* Match SX-* with NECSX architecture in pvmgetarch

	* Correct some dependencies for string compatibility functions

	* Adapt for missing <cstdlib> with SGI CC

2002-09-14  Charlie Zender  <zender@uci.edu>

	* Added esoteric math functions to MACOSX using float<-->double
	coercion method

	* Implement compatibility strdup() and strcasecmp()
	Comeau should now work but have not tested it

	* cvs tag -c nco-2_6_3
	Changes since nco-2_6_2: 
	Numerous build improvments and removal of PVM_ARCH ifdefs
	MACOSX builds with bld/Makefile, documentation fixes

	* MACOSX builds appear to work

	* Add ranlib to bld/Makefile libnco.a target for MACOSX builds

	* Get rid of inline qualifier on nco_rth_flt function definitions

	* Move function definitions from nco_rth_flt.h to nco_rth_flt.c

	* Verified that bison 1.29 on MACOSX screws up ncap_yacc.y
	translation. Installed bison 1.35 on compile farm MACOSX system,
	and builds work fine.

	* Remove ncap_utl.o from libnco.a

	* #include <math.h> in nco_rth_flt.h

	* Do not look for <getopt.h> in MACOSX

2002-09-09  Charlie Zender  <zender@uci.edu>

	* Added preliminary MACOSX support to bld/Makefile
	Everything appears to work but ncap, which has numerous problems 
	on MACOSX because of bison, float functions, and ranlib.

	* Code compiles with gcc -ansi -pedantic -D_BSD_SOURCE
	Switches -std=c99 and -std=gnu99 both work too
	-D_BSD_SOURCE tells GCC nameser.h is ANSI-compliant

	* Moved float math function definitions to nco_rth_flt.h,
	created declarations for MACOSX in nco_rth_flt.c

2002-09-08  Charlie Zender  <zender@uci.edu>

	* Implemented pre-processor macros CST_X_PTR_CST_PTR_CST_Y,
	X_CST_PTR_CST_PTR_Y to be as const-correct as possible for the
	language the source code is treated as. If treated as C++, full
	const-correct prototypes are implemented, else if treated as C,
	a const is dropped here or there to make things compile
	warning-free. Fixes TODO #213.

2002-09-06  Charlie Zender  <zender@uci.edu>

	* Clean up ncap section of nco.texi, polish documentation builds,
	add XML, txt formats from makeinfo

	* Fixed nco.texi problems, generating docs at compile farm

2002-09-03  unknown  <zender@uci.edu>

	* Typecast return value of strdup() to char *

2002-09-02  Charlie Zender  <zender@uci.edu>

	* #include <config.h> in all headers which reference strdup()

	* Crude but workable HAVE_STRCASECMP support, 
	include config.h headers to allow future HAVE_STRDUP handling

	* Implement some Comeau support, but presence of non-ANSI
	functions strdup(), strcasecmp() makes full Comeau support
	unlikely anytime soon

2002-08-27  Charlie Zender  <zender@uci.edu>

	* Tweak CC list in configure.in, remove c89, xlc_r

	* cvs tag -c nco-2_6_2
	Changes since nco-2_6_1: 
	Improvements to autotools builds
	Initial ncap handling of user-defined dimensions

	* Replace PVM_ARCH token with HAVE_GETOPT_H for getopt.h handling

	* Remove Fortran files nco_cal_utl.F,  nco_fortran.F,
	nco_fortran.h since it is unlikely anyone will step forward to
	maintain fortran support. Of course these can be resurrected if
	necessary. 

	* Add instructions for using compile farm, modify AIX, MACOSX
	builds 

2002-08-22  Charlie Zender  <zender@uci.edu>

	* Define var_in_typ before using in nco_cnv_mss_val_typ()

	* Began using HAVE_CONFIG_H, config.h in source files (nco_scm.[ch],tst.cc)

2002-08-21  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_6_1
	Changes since nco-2_6_0: 
	Unpacking is now supported for all arithmetic operators

	* Improved regression testing in configure.eg

	* Eliminate unnecessary type conversion to typ_dsk in ncra, ncea, ncwa
	This could reduce precision of answers
	Thanks to Martin Dix for pointing this out

2002-08-20  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_6_0
	Changes since nco-2_5_6: 
	Unpacking support is now beta for all arithmetic operators

	* Print attributes with same formatting as variables

	* Added hooks for packing support in arithmetic operators:
	Code was changed in locations marked with "pck_dbg"
	1. Change type of output in nco_def_var() from var->type to
	var->typ_upk when is_rth_opr() is true
	2. Unpack variable in nco_var_get() when is_rth_opr() is true
	3. nco_att_cpy() does not copy attributes "scale_factor",
	"add_offset" for unpacked output variables
	4. nco_att_cpy() ensures "missing_value" is converted to unpacked
	type before copying
	5. nco_var_get() refreshes var->pck_ram on each read
	6. Use nco_cnv_mss_val_typ() to keep type of missing_value in sync
	Unpacking appears to be working for all arithmetic operators!
	
2002-08-19  Charlie Zender  <zender@uci.edu>

	* Added .cvsignore to dirs affected by autoconf

	* Added autoconf-specific list to doc/TODO

	* Added configure.eg to keep track of autoconf problems

	* Changed bld/Makefile to work with ncap_lex.l and ncap_yacc.y
	Removed ncap.l and ncap.y.

2002-08-18  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_5_6
	Changes since nco-2_5_5: fixed processing of missing_values
	for integer variables in ncra, initial auto build tools

	* Merged Rorik's autobuild infrastructure. New (autobuild) and
	old (bld/Makefile) systems both appear to work but there may
	be some interference on ncap since ncap.l had to be renamed
	ncap_lex.c and ncap.y is ncap_yacc.c.

	* Altered pck_dsk_inq() to set var->typ_upk=var->type by default
	so that nco_cnv_mss_val_typ_upk() has something to work with

	* Fixed problem in nco_cnf_typ.c which caused failure for ncra
	when variable had missing_value attribute and needed to be
	promoted before arithmetic (e.g., int to float). Freeing variable
	each record but leaving mss_val the promoted type resulted in 
	mss_val being overwritten (usually to value of 0.0) in all
	records but first for each file. Problem was ncra-specific and
	is described in more detail in header of nco_cnv_mss_val_typ_upk()
	routine. Better fix would be to carry type of missing_value as
	separate element of var structure.

2002-08-14  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_5_5
	Changes since nco-2_5_4: Global "history" attribute fix
	
	* Fix bug in nco_hst_att_cat() introduced in 2.4.2 which left
	att_nm undefined when global history attribute did not exist

2002-08-13  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_5_4
	Changes since nco-2_5_3: NECSX support
	
	* Extensive support for NECSX architecture contributed by 
	Len Makin <len at hpc.csiro.au>

2002-08-10  Charlie Zender  <zender@uci.edu>

	* Make Rorik Peterson a developer. Add sourceforge logo to homepage.

2002-07-28    <zender@uci.edu>

	* Updated to cygwin-gcc-3.1.1-4 and build problems appear to have
	gone away, but syslimits.h is still not found so GSL cannot build

2002-07-08  Charlie Zender  <zender@uci.edu>

	* Correct ncap symbol table to build on SGI6, SGI64 platforms

	* Add ncap to nco_tst.sh test suite

2002-07-08    <zender@LANINA>

	* All operators build with cygwin gcc-3.1.1 as long as
	-I/usr/include is given first (fixes weird syslimits.h problem),
	non-kludge fix may require updated gcc and mingw packages.

	* Modify Makefile for cygwin-1.3.x compatibility.
	Everything appears to build except ncap.l/ncap_lex.c which needs
	syslimits.h which current cygwin gcc-3.1.1 does not appear to support

2002-07-03  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_5_2

	* conditionally added acosh, asinh, atanh, cosh, sinh, tanh to ncap

	* unconditionally added floor(), ceil() to ncap

	* Print double precision numbers with 12 digits of precision

	* conditionally added erf(), erfc() to ncap

	* Document ncks -b, -B switches in manual

	* Fix size of extracted dimension list for wgt and var calls to
	nco_var_fll(). Print error and hint when encountering TODO #111
	problems rather than dumping core.

2002-07-01  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_5_1

	* Modified ncatted to delete all attributes for specified variable
	when no specific attribute name is given for that variable.

2002-06-16  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_5_0

	* Added man pages for NCO operators to man directory.
	Source of man pages is Debian distribution by Brian Mays,
	which automatically generates man pages from texinfo source.
	Thus man pages are moderately out of date, currently for version 2.2.0. 

2002-06-15  Charlie Zender  <zender@uci.edu>

	* Make namespace safe by prefixing all functions with nco_ or ncap_

2002-06-09  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_4_6
	* Changes since nco-2_4_5: Sorting routines

	* Replace indexx* routines with system qsort()-based routines

2002-06-08  Charlie Zender  <zender@uci.edu>

	* Lexer/parser changes to implement conditional, clean up rx's

2002-06-07  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_4_5
	* Changes since nco-2_4_4: Arithmetic routines use const.
	More warning messages during compilation due to size_t printf

	* Fixed bug where mss_val_sht was dereferenced into long
	in one arithmetic routine.

	* Made as many parts of arithmetic routines const as possible
	and implemented const instantiaion outside of loops to reduce
	dereferencing wherever possible.
	If NCO suddenly seems faster, this is why.

2002-06-06  Charlie Zender  <zender@uci.edu>

	* Noticed that GCC gives warnings when printf'ing size_t with %lu
	format flag since type of size_t is non-portable. GNU offers
	non-portable %z workaround. Recommended solution is to typecast
	all size_t's to unsigned longs before printf'ing.

	* Worked on 64-bit clean issues identified by AIX -qwarn64 flag
	The only possible non-functioning code found was date conversion
	code which could break on YYYYMMDD dates.
	Converted int's to longs where necessary to solve this.
	Used size_t instead of int or long where possible.
	Used ptrdiff_t instead of int where warranted.
	Most of remaining warnings could be solved by using size_t instead
	of int or long for counters, but mismatches are unavoidable at
	some point since type nco_long variables (i.e., netCDF data) 
	needs to interact with size_t variables on occasion.
	
	* cvs tag -c nco-2_4_4
	* Changes since nco-2_4_3: Build system

2002-06-05  Charlie Zender  <zender@uci.edu>

	* Allow 64 bit mode ABI (addresses are all 64 bits) on AIX
	when compiled with ABI=64.
	This should allow NCO to work on files larger than 2--4 GB
	The default for SGI was already 64 bits.

2002-06-04  Charlie Zender  <zender@uci.edu>

	* Make flex/bison default on AIX

2002-05-31  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_4_3
	Changes since nco-2_4_2: History attribute handling

	* Added target non_ncap to Makefile in attempt to prevent NCAR AIX breakage

	* Fixed hst_att_cat() to handle non-standard "History" attribute
	same as standard "history" attribute

2002-05-23  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_4_2
	Changes since nco-2_4_1: #include file mechanism works,
	AT&T lex-compatibility broken by using flex <EOF> rules

	* Documented ncap file insertion

	* Fixed #including file mechanism, generalized line counting and
	file name storage

2002-05-22  Charlie Zender  <zender@uci.edu>

	* Realized that AIX lex does not support <EOF> like flex

	* Ported to NPACI environment

2002-05-20  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_4_1
	Changes since nco-2_4_0: minor bugfix which should fix
	use of operators in scripts where return code is checked

2002-05-19  Charlie Zender  <zender@uci.edu>

	* More ncap work to prepare for dimension list structures
	which are going to be implemented correctly by tokenizing
	each element of dimension list and assembling full list in
	parser and letting scanner pass in each token. 

2002-05-18  Charlie Zender  <zender@uci.edu>

	* Added nco_op_typ element to prs_sct for handling dimension
	reduction functions

2002-05-15  Charlie Zender  <zender@uci.edu>

        * Fixed bug where nco_exit always returned EXIT_FAILURE

2002-05-14  Charlie Zender  <zender@uci.edu>

	* Added skeleton code to read #include'd files. Not yet working.

2002-05-13  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_4_0
	Changes since nco-2_3_1: Builds out of box on all Unices
	
	* Surround fabsf and fmodf prototypes with ifndef __GNUG__
	since g++ linking fails when prototypes explicitly specified
	in header _and_ in function. This is a kludge to a kludge
	to enable full g++ compilation.

	* Version now builds on AIX (even ncap.y with pure_parser)
	as long as cc compiler, not xlc or xlC, is used. Prototype
	warnings similar to gcc prototype warnings can be ignored.
	All major platforms are once again working out of the box.
	
2002-05-11  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_3_1
	Changes since nco-2_3_0: New design, same functionality
	Appears to work on Linux, IRIX but compile problems on AIX

	* gcc compiles with spurious errors but links and tests fine

	* g++ compiles fine but unable to link with fabsf fmodf

	* Code builds and test correctly when compiled with icc

	* New code compiles completely warning-free with icc 6.0

2002-05-08  Charlie Zender  <zender@uci.edu>

	* Added ability to write unformatted binary output to
	ncks using -B switch. Seems to work

2002-05-07  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_3_0
	Changes since nco-2_2_4: Completely unstable version with
	new modular design. Library does build cleanly.

	* Redesigned libnco.a as modular library
	Split into ~20 smaller source files each with private header
	Used const wherever possible

2002-04-27  Charlie Zender  <zender@uci.edu>

	* Finished name cleanup in ncap. Still need to break large
	files into smaller granules and const'ify prototypes

	* cvs tag -c nco-2_2_4
	Changes since nco-2_2_3: Packing and unpacking functions now
	both work in ncap

	* Reducing ndrv number of discretely representable values by
	1 appears to fix the rounding problems. Will probably have to
	reduce it by one more to make room for a missing value.

2002-04-26  Charlie Zender  <zender@uci.edu>

	* Packing appears to be working, but not recursively, and there
	are still issues of speed and rounding problems

	* Automatically call var_upk() in var_get() in ncap only

	* Improved pck/upk values in in.cdl

	* Make var_pck() alter typ_pck, typ_upk elements when finished
	packing

2002-04-24  Charlie Zender  <zender@uci.edu>

	* Put warnings on some arbitrary limits in ncap

	* Modify ncap and Makefile to link to -lC AIX C++ library to
	access float intrinsics cosf()... AIX does not support gammaf()
	(nor does SGI).

2002-04-23  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_2_3
	Changes since nco-2_2_2: Support unpacking variables in ncap

	* Altered ncap algorithm so that now binary var/att expressions
	take highest precision type rather than always using var type.
	This allows unpacking algorithm to work straightforwarly using
	scale_factor and add_offset convention.

2002-04-18  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_2_2
	Changes since nco-2_2_1: fix rare ncwa weight bug 

	* make tst gets test file from dust.ps.uci.edu rather than CGD

	* Avoid wgt portion of ncwa when DO_CONFORM_WGT = False
	This section was superfluous in this situation anyway.
	Avoiding it by testing for DO_CONFORM_WGT appears to fix
	some hard to identify bug when lon was being averaged with gw as
	weight. The two did not conform, but a problem occured anyway.
	This appears to cure the three mysterious ncwa crashes present in
	the TODO list so mark those as fixed too.

2002-04-02  Charlie Zender  <zender@uci.edu>

	* Switch back to using pure_parser to prevent Linux core dumps on 

2002-03-30  Charlie Zender  <zender@uci.edu>

	* Prototype fabsf() where used to help Sun compilation

2002-03-27  Charlie Zender  <zender@uci.edu>

	* Quiet output by only printing CONVENTION when dbg > 0

2002-03-21  Charlie Zender  <zender@uci.edu>

	* Remove %pure_parser from ncap.y to preserve yacc compatibility

2002-02-27  Charlie Zender  <zender@uci.edu>

	* Described LHS casting in manual

2002-02-24  Charlie Zender  <zender@uci.edu>

	* ncap variable division had numerator and denominator swapped!

	* Removed ncap_lex.c ncap.tab.c ncap.tab.h because they are not
	portable across platforms so it is best to let these be generated
	on user's machine until portable x-platform versions can be 
	generated. Immediate problem is that IRIX and Linux versions
	are interfering with eachother.

	* ncap -r does not require argument

2002-02-18  Charlie Zender  <zender@uci.edu>

	* Began documenting ncap in nco.texi

2002-02-11  Charlie Zender  <zender@uci.edu>

	* Remove ncap dependency on getopt.o, getopt1.o since
	getopt_long() is not currently used (but using it is on 
	the TODO list). Re-implementing getopt_long() will be done
	eventually, but now just make ncap easier to build to facilitate 
	more beta testing.

2002-02-04  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_2_0:
	Changes since nco-2_1_3: Henry made subscripts lexer tokens and
	improved dimension list handling so LHS casting works regardless
	of precedence or presence of LHS expressions.

	* Small ANSI fixes in ncap.c for AIX

	* Replace math float prototypes required for AIX, Solaris builds
	These are not required on Linux or IRIX, which keep them in math.h

	* Documentation changes

2002-02-02  Charlie Zender  <zender@uci.edu>

	* Quieted output by removing verbose printing from debug level = 0
	Execution is now silent except for WARNINGS and INFOs.

2002-01-30  Charlie Zender  <zender@uci.edu>

	* Added some Compile Farm procedures to nco_src_frg.txt

	* Add FREEBSD support to Makefile, and allow environment
	to override CC and C++ compiler variables

2002-01-29  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_1_3
	Changes since nco-2_1_2: LHS casting really works as long as
	dimensions are already in output file. Replaced var_add() in ncap,
	no known parser bugs, just missing features. 

	* Created var_add_no_tally() by copying var_subtract() and
	changing minuses to pluses. This routine does not use tally,
	and does handle missing values appropriately.
	Changed ncap_var_var_add() to use var_add_no_tally() rather than
	var_add(). This fixed segfaults with prs_mdp definition,
	which now works as expected.

	* ncap variable addition scripts break in var_add()
	Possibly because not all ncap routines malloc() tally array
	Possibly because missing values handling is not failsafe in
	var_add() (although I believe it is fine for other NCO operators)

	* Allocate tally using sizeof(long) rather than
	nco_typ_lng(NC_INT)

2002-01-28  Charlie Zender  <zender@uci.edu>

	* Move LHS_cst cleanup to statement_list rule so cleanup does
	not occur before last expression in statement is evaluated

	* Added ncap_var_stretch() to out_var_exp = att_exp action

	* Spread out debug levels to create more uniform distribution
	of diagnostics as dbg_lvl increases

	* LHS casting is semi-working, semi-broken. Seems to work when all
	required dimensions are already in input file and RHS is variable,
	not attribute. Thus a3[lat,lon,lev] = one works but
	a3[lat,lon,lev]=1.0 does not. 
	Still thinking about how to stretch attributes.

2002-01-27  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_1_2
	Changes since nco-2_1_1: ncap warning cleanups, icc conformance,
	plug most non-ncap leaks detected by insure++

	* Move yylex() so only called once in ncap_initial_scan()

2002-01-26  Charlie Zender  <zender@uci.edu>

	* Use <limits.h> to get INT_MIN, INT_MAX

	* Changed from gcc to icc on Intel, seems to work fine

	* Cast char to unsigned char and visa versa where necessary to
	prevent icc warnings. This solved all icc warnings on ncap, and
	solved all IRIX cc warnings for ncap too. Since unsigned char
	pointer and char pointer are same size, there should be no problem
	casting between them. However, casting between unsigned char value
	and char value could change answers. 
	String operations should be checked to ensure they still work.

2002-01-23  Charlie Zender  <zender@uci.edu>

	* Fix read overflow in ncks.c:prn_var_val_lmt() where
	non-NUL-terminated character array was being printed with %s format

2002-01-22  Charlie Zender  <zender@uci.edu>

	* Fix non-NUL-terminated strings in hst_att_cat()

	* Added nco/doc/purify.txt to track memory problems reported by purify

2002-01-21  Charlie Zender  <zender@uci.edu>

	* Remove templates for math functions from ncap.c

	* Implement CCOMMENT start state to recognize C comments /* */ 

	* Explicitly declare yy_scan_string() to remove compiler warnings

	* Implement/use nco_set_fill() wrapper 
	Remove architecture-dependent wrapper on usage
	Pass pointer to valid fll_md_old since NULL is not safe
	because nc_set_fill() may try to write to it

2002-01-17  Charlie Zender  <zender@uci.edu>

	* Initialize RHS to False, add global LHS_cast

2002-01-16  Charlie Zender  <zender@uci.edu>

	* Enable assertion macros in ncap

	* Changed Makefile default to OMP=N until further testing

	* Began implementation of lexer for subscripted variables
	with x[dmn1,dmn2,...dmnN] syntax. Currently creates list of 
	dimension structures but does nothing with it.

2002-01-13  Charlie Zender  <zender@uci.edu>

	* Verified ncap script gives same answers as odxc.ncl script

	* var_free() superceded variable in ncap_var_conform_dim()
	causes core dump (why?), but not free'ing must cause memory leak 

	* Realized var_conform_dim() has bug of omission: does not abort
	when variables do not conform because dimension list of one is
	subset of other but ORDER of dimensions differs, e.g.,
	a(lat,lev,lon) !~ b(lon,lev). 
	NCO probably returns incorrect answers silently in this case!  

2002-01-12  Charlie Zender  <zender@uci.edu>

	* Added variable/variable division (which had been overlooked)

	* Created ncap_var_stretch() which generalizes var_conform_dim()
	by including convolution of variables. ncap_var_stretch() appears
	to work as drop in replacement for var_conform_dim(). 
	Convolution is just a stub which does not do anything yet.
	Realized that expansion might work by creating arbitrary variable
	of convolution size and then separately calling var_conform_dim()
	with that as var and both vars as wgt.

	* First build of ncap on LINUXALPHA architecture

2001-12-31  Charlie Zender  <zender@uci.edu>

	* More ncap.* cleanup. Alter some variable names to conform to
	rest of NCO.

2001-12-29  Charlie Zender  <zender@uci.edu>

	* Succeeded in building ncap on 64 bit machines: SGI, Alpha, Sun
	All of these machines have bison installed
	Some of these builds require building getopt.o separately
	Build fails on IBM because yacc does not understand pure_parser
	
2001-12-28  Charlie Zender  <zender@uci.edu>

	* More CEWI initializations

	* Changed copyright to 2002

	* Remove C++ comment characters that crept into various routines
	Using // comments causes default to compilation to break on many
	architectures (Linux being an exception)
	
	* cvs tag -c nco-2_1_1
	Changes since nco-2_1_0: ncap uses @ for attributes
	Mixed rank handling improved but still broken

	* Fix '@' handling for global attributes

	* Make handling of attribute indicator @ consistent in warnings

	* ncap.l: cast void to ptr_aed->type not undefined type

	* Begin clean up of ncap code, eliminate compiler warnings

2001-12-11  Henry Butowsky  <henryb@ntlworld.com>

	* Changed ncap.l so attributes now use the @ symbol rather than :
	          i.e var_nm@att_nm rather than var_nm:att_nm

	* Changed ncap.y So that 1-D variables can be saved in an attribute
	
	* Attempted to fix the rank problem. Added ncap_var_conform_dim() to
	  ncap_utl.c, Its not working correctly at the mo.
	
        * Added att_lst_max to ncap.c
	
	* Updated ncap.in

2001-12-02  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_1_0
	Changes since nco-2_0_3: ncrename interactive query limiter
	ncap extravaganza

	* Move Henry's tests into ncap.in script

	* Allow global:att_nm to signify global attributes in ncap

	* Removed file query cruft from ncrename and added maximum
	response count short circuit mechanism to prevent batch jobs
	from going bonkers when -O not specified and output file exists

	* Added hybrid coordinate info to in.cdl

2001-11-10  Charlie Zender  <zender@uci.edu>

	* Added three_dim_var_crd to check COORDS storage convention ordering

2001-10-30  Charlie Zender  <zender@uci.edu>

	* Fixed getopt dependencies and included nco_netcdf.h nco.h in
	ncap stuff 

2001-10-28  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_0_3
	Changes since nco-2_0_2: ncks bugfixes for units printing,
	and version information

	* Use NC_REC_DMN_UNDEFINED instead of -1 where appropriate

	* Fix argument list to nco_inq_varid() call in ncap 

	* Fix netCDF3 migration bug that could cause core dumps because
	non-coordinate dimensions where being interpreted as coordinate
	dimensions in ncks due to changed nature of nc_inq_varid returns

2001-10-15  Charlie Zender  <zender@uci.edu>

	* Added VERSION infrastructure for recording build information in executable

	* Check rcd before Exit_Gracefully() in main() routines so 
	rcd does not generate "set but not used warnings"

2001-10-07  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_0_2
	Changes since nco-2_0_1: No user-visible changes
	All changes are in netCDF3 compliant function semantics
	for the nco_netcdf wrappers. Altered many routines to call
	information-specific versions of inquire functions where
	possible.

	* Verified nco-2_0_2 passes test suite 

	* nco_typ_sng(): NC_CHAR is unsigned char, moved nco_typ_sng(),
	c_type_nm(), fortran_typ_nm() to nco_netcdf library so that
	library may take advantage of these routines in printing useful
	diagnostics, yet still be independent of the rest of NCO.

	* Attempted to replace netCDF2-style use of -1 return codes
	by rcd and comparison to NC_NOERR everywhere. This is not exactly
	straightforward because there are many valid reasons to have
	literal constant -1 in the code. I think I did this correctly.
	However the use of -1, instead of NC_GLOBAL, for global attributes
	and, for ncatted, to indicate that attribute changes should apply
	to all variables, should be changed to NC_GLOBAL so code is more clear.

	* Change functions to implement netCDF 3.X interface
	Meaning pass answer holder as pointer and pass back return code
	nco_open(), nco_create(), nco_inq_[var,dim,att]*()

	* ncks.c prn_var_val_lmt(): Handle nco_inq_attid() correctly

2001-10-01  Charlie Zender  <zender@uci.edu>

	* Build is clean and successful with g++/Linux, xlC/AIX

	* Return (int)0 instead of (int)NULL from nco_typ_lng()

	* Initialize nc_type variables with new netCDF 3.5 token NC_NAT
	This requires building NCO > 2.0.1 with netCDF >= 3.5
	This change also permits successful builds with g++ again, which
	complained about initializing nc_type with non nc_type enums
	
	* cvs tag -c nco-2_0_1
	Changes since nco-2_0_0:
	Cleaner separation of netCDF wrappers into nco_netcdf.c,.h
	Appearance of error messages slightly changed since prg_nm_get()
	no longer invoked by wrappers

	* ncap uses nco netCDF3 interface

        * Structure nco_netcdf.h as standard library header
        
	* Forbid multiple includes of nco_netcdf.h

        * Changed nc.h to nco.h for namespace consistency

        * Removed prg_nm_get() from all nco wrappers so wrappers have
	no external dependencies

	* Changed nc_err_exit() to nco_err_exit()

	* Removed superfluous headers from nco_netcdf.c

2001-08-10  Charlie Zender  <zender@uci.edu>

	* Changed storage location of remotely accessible in.nc to
	.../nco/in.nc 

	* Various Makefile changes for exotic NCAR platforms

	* Changed band to bnd in in.cdl

2001-07-25  Charlie Zender  <zender@uci.edu>

	* TODO: Rearranged TODO list and put ~15 high-priority
	items up on the top

2001-05-28  Charlie Zender  <zender@uci.edu>

	* Added HDF5 interface to nco_create(), using HDF5 preprocessor
	token to isolate native HDF code currently

2001-05-07  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-2_0_0

	* This netcdf3 branch is now merged into the main trunk.
	The netcdf2 branch is now in maintenance mode.

	* cvs tag -c nco-1_3_4

2001-04-04  Charlie Zender  <zender@uci.edu>

	* Changed to using nco_inq_att_flg() in ncar_csm_inq()

2001-03-26  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-1_3_3

	* nco_tst.sh runs as expected when compiled with OPTS=D and OPTS=O 
	on both Linux 32 bit and Irix 64 bit

	* Removed make options for NETCDF2_ONLY flag which is no longer
	supported with NCO 1.3 branch

	* Default build now compiles with -DNO_NETCDF_2 flag and tests
	successfully.

	* Replaced nclong with nco_long = long. 
	There's no need to remove nco_long just yet until a long term
	strategy for dealing with long, size_t, int issues is decided
	upon. netCDF 3.x deprecates the whole nclong issue, but it might
	be useful to have reminders of where the issue was important,
	e.g., in the fortran arithmetic routines.

	* Changed in.cdl to use int rather than deprecated long and
	removed deprecated "l", "L" suffices to numeric constants

	* Added i18n headers to ncra.c and to Makefile with default being
	no internationalization. Hooks appear to work fine.

	* Changed NC_LONG to NC_INT to adhere closer to standard. 
	Type NC_LONG is currently synonymous with NC_INT and will continue
	to be represented by native type long.

2001-03-07  Charlie Zender  <zender@uci.edu>

	* Added Makefile option to disable OpenMP support on compilers
	that automatically support it: OMP=N

2001-03-06  Henry Butowsky  <thin@thin.screaming.net>

        * fixed ncdiff problem. There was a conversion error in dmn_dfn 

	* fixed ncrename problem. There was a typo error
	  in nco_rename_var ( it was calling itself) This
	  is the third such error in nco_netcdf.c. 
	  
2001-03-02  Charlie Zender  <zender@uci.edu>

	* Code fails to compile with -DNO_NETCDF_2

	* Code compiles but is buggy. This command fails:
	ncdiff -O -C -v three_dmn_rec_var in.nc in.nc foo.nc;ncks -H foo.nc	
	As does 
	ncdiff -O -C -v PS nco_tst.nc nco_tst.nc foo.nc
	
	* Removed NETCDF2_ONLY code

2001-02-16  Charlie Zender  <zender@uci.edu>

	* cvs tag -c nco-1_3_2

	* After many minor tweaks, made commits and retagged nco-1_2_2
	and this is the version that will be merged into 1_3_1 to create
	1_3_2

	* Tagged changes until today as nco-1_3_1 and will merge with
	nco-1_2_2 

2001-02-11  Charlie Zender  <zender@uci.edu>

	* Figured out that texi2dvi --pdf really does work nicely and am
	now using it rather than ps2pdf

	* Tagged and released nco-1_2_2

2001-01-02  Charlie Zender  <zender@uci.edu>

	* Clean up some function prototypes, removed crud from nc.h,
	implemented extern keyword on all functions

	* Changed ncks print formatting of NC_BYTE data (i.e., signed
	char) to print as unsigned char data to facilitate printing
	HDF4 datasets.

2000-12-29  Charlie Zender  <zender@uci.edu>

	* Added make NETCDF2=Y to compare netCDF2 behavior with/without
	HDF libraries. HDF libraries cause ncwa to fail certain tests
	that work fine with Unidata netcdf2 libraries. All other operators 
	appear fine with HDF libraries.

	* Added default statements to switch(type) constructs which
	emitted warnings when compiled with -DNETCDF2_ONLY since,
	apparently, there are a whole bunch of things besides numeric
	types in the old nctype enum and gcc warns about enums that are
	not exhaustively considered in switch() statements. 
	All these default statements can be removed with netCDF3 interface
	so perhaps these should be surrounded with #ifdef NETCDF2_ONLY
	constructs, but they actually do make sense for netCDF3 as well
	so I have implemented a uniform error function, dfl_case_nctype_err(), 
        to be called by all routines which emit errors only when compiled with
        NETCDF2_ONLY.
        This makes the behavior easy to modify or remove in the future.

	* Fixed echoing of Makefile diagnostics

	* Added HDF4 option to Makefile to facilitate compiling with HDF
	version of netCDF libraries

2000-11-25  Charlie Zender  <zender@uci.edu>

	* Added -q ("quiet") switch to ncks to suppress printing of
	dimension indices and coordinate values

2000-11-04  Charlie Zender  <zender@uci.edu>

	* Created netcdf3 branch with tag netcdf3 and additional version
	tag nco-1_3. This branch will hold the netcdf3 implmentation while
	it is in development. When it is ready it will become the main
	trunk of nco.

2000-10-29  Charlie Zender  <zender@uci.edu>

	* Implemented new @command{}, @env{}, and @acronym{} keywords in
	nco.texi

2000-10-26  Charlie Zender  <zender@uci.edu>

	* Fixed makeinfo problem with nco.texi

2000-10-15  Charlie Zender  <zender@uci.edu>

	* Implemented Henry's ncrename and nco_tst patches: Former
	allows renaming of attribute for a single variable, latter cleans
	up nco_tst.sh and allows easier function-specific testing.

2000-10-01  Charlie Zender  <zender@uci.edu>

	* Cast results of sqrt() to LHS type to eliminate new gcc 2.96
	warnings. g++ 2.96 is less forgiving than gcc 2.2

	* Fixed some miscast missing values in arithmetic routines for
	doubles, shorts, and longs. Odd that I had not noticed these
	miscasts before. g++ 2.96 flagged them.

2000-09-21  Charlie Zender  <zender@uci.edu>

	* Fixed one-line bug where ncwa min,max,ttl cases fell
	through to error exit rather than doing nothing with weights

	* Adding critical regions about netCDF library calls appeared to
	work. ncwa and ncra/ncea now give repeatable, correct answers when
	multithreaded. Speedups appear to be about ~30--40% on small
	numbers of typical GCM files when using 4 threads. Performance
	appears to level out by 4 threads, although more timing is
	necessary. For example, ncwa is now spending about 50% on I/O and
	50% on computation.

2000-09-20  Charlie Zender  <zender@uci.edu>

	* Added OpenMP critical regions to var_get() and var_refresh()

	* Added OpenMP critical regions around thread-unsafe netCDF
	write calls in ncwa and ncra/ncea. 

	* Finally removed 1995--1996-era SGI enum workarounds from nc.h
	SGI compiler on dataproc seems to behave sanely now

	* Jim Rosinski and Stacy Walters have both pointed out that netCDF
	is not thread-safe. Therefore the OpenMP implementation is bound
	to fail until critical locks are added.

2000-09-19  Charlie Zender  <zender@uci.edu>

	* Added OpenMP pragmas to ncea,ncra,ncrcat. They probably don't
	work either.

	* Multi-threaded version of ncwa averages variables in T42 file
	correctly sometimes, but also incorrectly. Currently unpredictable 
	what causes discrepancy.

	* Removed arg_cnt from ncwa.c. ncwa.c now uses standard
	fl_mk_lst() to diagnose incorrect argument counts

2000-09-18  Charlie Zender  <zender@uci.edu>

	* Got OpenMP compiling but not completely working on ncwa under IRIX

2000-09-17  Charlie Zender  <zender@uci.edu>

	* Added full OpenMP directives to ncwa. If this works then ncra is next.

2000-09-13  Charlie Zender  <zender@uci.edu>

	* Contrary to the documentation, ncflint has always processed
	coordinate variables. Perhaps fixing coordinate variables is a 
	better idea? Patched var_lst_divide() to fix all non-record
	coordinate variable to ncflint. Not sure if I will release this
	though. Perhaps it should be a switch?

	* Improved ncflint documentation, including its ability to add files

2000-08-31  Charlie Zender  <zender@uci.edu>

	* Changed handling of netCDF convetions to search for
	"Conventions" attribute rather than "convention" attribute
	Not sure why I ever used "convention" in the first place!
	This should fix things like gasussian weights being subtracted

2000-08-30  Charlie Zender  <zender@uci.edu>

	* Updated var_dup(), var_free() to handle scl_fct.vp, add_fst.vp,
	srd. That's right, these routines were not handling srd pointer
	correctly.

2000-08-29  Charlie Zender  <zender@uci.edu>

	* Removed tally array from var_avg_reduce_max/min() routines

	* Added some clarifications to memory handling in the manual, and
	additional examples provoked by John Sheldon's GFDL netCDF
	website. 

	* Integrated ncvarid_or_die() and ncdimid_or_die() into ncrename

2000-08-28  Charlie Zender  <zender@uci.edu>

	* Tagged nco-1_2_1

	* Will all previous changes to nco_malloc(), nco_realloc(), and
	memory management in general, make tst now seems to be well
	behaved with Electric Fence, and duplicates answers without
	Electric Fence. 

	* Another nco_realloc() tweak to satisfy Electric Fence:
	Now realloc() is never called when size == 0

2000-08-27  Charlie Zender  <zender@uci.edu>

	* Automatic type conversions for arithmetic now work in ncwa,
	ncea, ncra. Don't think ncflint would benefit from the capability.

2000-08-26  Charlie Zender  <zender@uci.edu>

	* Changed meaning and name of typ_prv to typ_dsk in var_sct

	* Moved target dat_cln from cln to dst_cln, opposite for lib_cln

	* Simplified internals of nco_opr_drv()

	* Fixed nco_realloc() so it does not call realloc() when ptr==NULL
	and size==0. Allowing a realloc() call in this situation is
	ANSI-legal but triggers Electric Fence.

2000-08-25  Charlie Zender  <zender@uci.edu>

	* Merged Makefile refinements by Ethan Davis to better support
	DODS compilations and less redundant building

2000-08-23  Charlie Zender  <zender@uci.edu>

	* Functionalized type conversion routines nco_cnv_var_dbl() and
	nco_cnv_dbl_var() 

	* Fixed x:y bug in opt arg of ncra.c introduced in 1.2

2000-08-14  Charlie Zender  <zender@uci.edu>

	* Added this text to the license, provided by Steven G. Johnson 

	"As a special exception to the terms of the GPL, you are permitted 
	to link the NCO source code with the NetCDF and HDF libraries 
	and distribute the resulting executables under the terms of the GPL, 
	but in addition obeying the extra stipulations of the netCDF and 
	HDF library licenses."

	This is intended to allow NCO to link to the non-GPL licenses of
	netCDF and HDF and avoid the "KDE problem". Apparently binaries
	are considered derived works of any libraries they are statically
	linked to, i.e., netCDF and/or HDF. This means both licenses must
	be obeyed, but that is impossible because no license except the
	GPL is compatible with the GPL. So we the developers of NCO must
	explicitly grant permission to all users to redistribute NCO under
	both licenses.

2000-08-03  Charlie Zender  <zender@uci.edu>

	* Tagged nco-1_2

	* Altered homepage

	* Added PDF version of manual

2000-07-31  Charlie Zender  <zender@uci.edu>

	* Added mathematical definitions of all new operations to manual

	* Rearranged order of operations in ncwa so that non-linear
	operations may employ weighting correctly. Weighting is not
	well-defined for some operations (rmssdn) but I did my best.

2000-07-28  Charlie Zender  <zender@uci.edu>

	* Applied final min/max/ttl patch so min/max/ttl capabilities
	should now work as expected on ncwa,ncea,ncra

2000-07-16  Charlie Zender  <zender@uci.edu>

	* Added ncwa min/max/ttl patch

2000-07-09  Charlie Zender  <zender@uci.edu>

        * Added section on Contributing/contributors to nco.texi
	
	* Fixed case when missing value is first in min and max operators

	* Added min, max, ttl cases to nco_tst.sh

	* Added temporary variable to all low-level arithmetic routines
	(e.g., var_add()) to store missing value in order to reduce
	dereferencing of pointers to missing values. This may result in
	measurable speedups for all arithmetic operators. 

2000-07-08  Charlie Zender  <zender@uci.edu>

	* Applied minmaxttl03 patch

2000-07-02  Charlie Zender  <zender@uci.edu>

	* Added nco_op_typ to SGI enum section of nc.h

	* Update nco/doc/nco_src_frg.txt to include release instructions

	* Released nco-1.1.48.tar.gz on sourceforge

	* Switched all memory management to nco_malloc(), nco_realloc()

	* Implemented min/max/ttl patch (min and ttl not working yet)

2000-06-20  Charlie Zender  <zender@uci.edu>

	* Implemented Schweitzer's 'make DODS=Y' patch in Makefile
	Only works on Linux as configured but that's a start

	* Added ncvarid_or_die() to replace simple ncvarid() on calls
	where failure to find variable is an error and a dianostic of
	which variable is missing would be nice.

2000-06-05  Charlie Zender  <zender@uci.edu>

	* Changed ~/nc/nco paths to ~/nco

2000-06-02  Charlie Zender  <zender@uci.edu>

	* Added explicity coercion to all lines which generated assignment
	errors under g++ C++ compiler. This might affect speed of
	conversions to long, short, char, and byte types from double and
	float types. These conversions are rare and considered unimportant
	so any performance penalty is acceptable.

	* Small changes to make code compile cleanly with g++ C++ compiler

	* Changed fl_mk_lcl() to try scp instead of rcp. scp should fall
	through to rcp is sshd is not running on remote machine.

	* Add Schweitzer's HTTP patch for DODS compatibility to
	fl_mk_lcl(). Will probably alter implementation in the future so
	fl_mk_lcl() works without netcdf library as before. NCO should now
	be DODS compliant when linked to DODS libraries. This allows
	reading, but not writing, of remote files using HTTP protocol.

	* Tagged nco1_1_49 as clean new version to start work from
	sourceforge without any overlaps with 1_1_48

	* Had to re-tag nco1_1_48 because sourceforge CVS repository was
	slightly out of sync with CGD repository

	* Moved CVS repository to sourceforge

2000-05-16  Charlie Zender  <zender@uci.edu>

	* Tagged this as nco1_1_48

	* Found and fixed ncdiff bug in TODO #155. 
	Bug had been inserted in ncdiff 1.5 (nco-1.1.15, November 1998)
	when I switched from using dimension IDs to using dimension names
	to identify and compare dimensions in var_conform_dim(). Problem
	was that there are two locations in var_conform_dim() where this
	needed to be done and I only changed the first location. Then I
	turned off dimension remapping code in ncdiff which used to take
	care of the problem. Fortunately I had left that code commented
	out in ncdiff() so I was able to check that turning it back on
	solves the problem. Now I have removed old commented-out block
	from ncdiff (because it was confusing) and all logic is now local
	to var_conform_dim(). This fix increases the number of strstr() 
	comparisons of dimension names because names must now be compared
	twice in var_conform_dim() for each variable being expanded. 
	Oh well. 

2000-05-12  Charlie Zender  <zender@uci.edu>

	* Fixed bug in -d dmn,,,srd case where lmt.end was incorrect

2000-05-10  Charlie Zender  <zender@uci.edu>

	* Finished testing of feature allowing skipping of initial files
	when lmt_typ = dim_idx. Seems to work. Now dim_idx and crd_val
	hyperslabs may have arbitrary numbers of superfluous files at 
	beginning and end. 

	* Added rec_skp_nsh member to lmt structure to support keeping
	track of records skipped in superfluous initial files for lmt_typ
	= dim_idx on multi-file operators

2000-05-09  Charlie Zender  <zender@uci.edu>

	* Altered behavior of single point hyperslabs so that single point
	hyperslabs in the record coordinate (i.e., -d time,1.0,1.0) may be
	treated differently than single point hyperslabs in other
	coordinates. Multifile operators will skip files if single point
	hyperslabs in record coordinate lays outside record coordinate
	range of file. For non-record coordinates (and for all operators
	besides ncra and ncrcat on record coordinates), single point
	hyperslabs will choose the closest value rather than skip the file
	(I believe). This should be verified.

	* Switched NCO from atof(), atol() to strtod(), strtol()

	* Added ability to skip superfluous trailing files to lmt_evl() 
	when limits are coordinate values. Needs testing but appears to
	work. Had to use a goto statement, icky. Fixes TODO #157?

2000-05-04  Charlie Zender  <zender@uci.edu>

	* More fixes to fix problems with Electric Fence 

2000-04-18  Charlie Zender  <zender@uci.edu>

	* Added ncra ncea to RPM

2000-03-22  Charlie Zender  <zender@uci.edu>

	* Added code to prevent malloc'ing 0 bytes because, although it
	is perfectly legal, Electric Fence complains

2000-03-06  Charlie Zender  <zender@uci.edu>

	* Added target rpmnet to Makefile. Usage is
	sudo make NCO_VRS=1.1.46 rpmnet
	This downloads specified NCO version, builds RPMs from it, and
	uploads the RPMs back to NCO FTP site

2000-03-01  Charlie Zender  <zender@uci.edu>

	* Added nco.spec to bld directory

	* Adding rpm target to Makefile

2000-01-27  Charlie Zender  <zender@uci.edu>

	* Tagged this as nco-1_1_45

	* Fix to PID length bug in fl_out_open() on SGIs
	Now use dynamically allocated string to hold PID 
	Kudos to Juliana Rew for finding this bug
	
2000-01-16  Charlie Zender  <zender@uci.edu>

	* Changed all addresses except website to UCI ESS

	* Changed license to GNU GPL (!)

2000-01-14  Charlie Zender  <zender@uci.edu>

	* Calling ncwa without arguments now causes operator to print
	usage and exit successfully 

	* Print error message and hint when ncwa called with -a dim1 -a
	dim2 instead of -a dim1,dim2

2000-01-10  Charlie Zender  <zender@z.ppp.uci.edu>

	* ncks now puts string values inside double quotes, character
	values inside single quotes, other slight formatting changes too

1999-12-26  Charlie Zender  <zender@dust.ps.uci.edu>

	* Tagged this as nco1_1_44

	* Documented record coordinate-stride capability for ncra, ncrcat
	in nco.texi examples and command-line usage routines

	* Added support for printing all character arrays as strings in ncks

1999-12-14  Charlie Zender  <zender@dust.ps.uci.edu>

	* Tagged this as nco1_1_43

	* Merged all SGI builds (SGI5,SGI64,SGIMP64) into single makefile block

	* Added support for C-language escape sequences to ncatted
	Moved all this code from ncks to new sng_ascii_trn() function

1999-12-06  Charlie Zender  <zender@dust.ps.uci.edu>

	* Tagged this as nco1_1_42

	* Fixed so that consecutive delimiter strings work,
	e.g., ncatted -O -a history,global,o,c,"hi,,,hi" in.nc

1999-12-04  Charlie Zender  <zender@dust.ps.uci.edu>

	* Fixed bug where ncatted neglected string values after first
	comma, e.g., would drop ", NCAR" from test attribute in
	ncatted -O -h -a test,global,o,c,"NREL, NCAR" in.nc
	because the new attribute value followed the comma delimiter used
	internally by ncatted to delimit list elements
	
	* Fixed so that setting strings to zero length with ncatted works,
	e.g., ncatted -O -a history,global,o,c,"" in.nc

	* Fixed attribute printing of lists in ncks: terminal delimiter is
	no longer appended

1999-11-02  Charlie Zender  <zender@dust.ps.uci.edu>

	* Fixed some problems with AIX build environment, switched to
	-DAIX on the IBM SP cluster environment

1999-10-21  Charlie Zender  <zender@dust.ps.uci.edu>
	
	* Defined MY_BLD_DIR in Makefile before it is used
	Re-tagged this as nco1_1_41
	
1999-10-17  Charlie Zender  <zender@dust.ps.uci.edu>

	* Tagged this as nco1_1_41

	* Added dir to targets which do not rebuild *.d dependencies
	Doing this and installing latest make-3.78.1 fixes build on dataproc

1999-10-15  Charlie Zender  <zender@dust.ps.uci.edu>

	* Tagged this as nco1_1_40

	* Added two more ncwa test cases to nco_tst.sh

	* Fixed another bug in ncwa reported by Keith Lindsay.
	The denominator in normalized averages did not always account for
	missing values in the variable being averaged. This bug may have
	been introduced sometime during ncwa rewrites around 19981201. 
	I'm sure it has not always been there.

1999-10-03  Charlie Zender  <zender@dust.ps.uci.edu>

	* Tagged this as nco1_1_39

	* Added test target in bld/Makefile. Now `make test' automatically
	downloads a small (66 kb) file on which it performs a small
	battery of tests (bld/nco_tst.sh). 

	* Revamped build procedure to use GNU make dependencies rather
	than makdep perl script. 

	* All *.c files now build cleanly with gcc -Wall

	* Fixed Makefile bug where Fortran routines were compiled when
	they were not needed and visa versa

	* Moved NETCDF_INC and NETCDF_LIB out of architecture specific
	portions of Makefile

1999-08-31  Charlie Zender  <zender@dust.acd.ucar.edu>

	* Tagged this as nco1_1_38

	* ncwa now averages over all dimensions when none are specified
	with -a

	* Patched avg_reduce...() to fix set averages equal to zero when
	tally is zero. This fixes Keith's problem.

	* Added ncwa test #12 to nco_tst.sh. This tests for a bug
	reported by Keith Lindsay where ncwa averaged a variable which is
	completely missing_value to a value of 0.0 rather than
	missing_value. 

	* Removed C_ONLY token and made builds completely C-based by
	default. Introduced new token USE_FORTRAN_ARITHMETIC to build
	old style NCO with fortran arithmetic routines. Seems to work
	fine. Translated Fortran date routines newdate() and days2eom() to 
	C as part of this. 

1999-08-04  Charlie Zender  <zender@dust.acd.ucar.edu>

	* Tagged this as nco1_1_37

	* Implemented first attempt to use msrcp, seems to work

	* Tagged this as nco1_1_36

	* Improved patch to fl_mk_lcl() so it "does the right thing"
	when determining whether to try to rcp files

1999-08-03  Charlie Zender  <zender@dust.acd.ucar.edu>

	* Patched fl_mk_lcl() to exit gracefully on filenames with
	multiple colons (which are legal in UNIX). Files with single
	colons in their names, as opposed to rcp requests, still cause
	core dumps and will continue to do so until I write a routine
	which determines whether to treat the filename as an rcp 
	request based on some sort of valid hostname recognition
	algorithm. 

1999-07-29  Charlie Zender  <zender@dust.acd.ucar.edu>

	* Tagged this as nco1_1_35

	* Changed WARNING message to print in ncra only when insufficient
	records have been found and last file has been processed

1999-07-03  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Tagged this as nco1_1_34

	* Altered ncatted behavior to replace missing data values with new
	missing_value when missing_value attribute changes

1999-05-12  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Tagged this as nco1_1_33

	* Using the new lmt_evl() dim_idx code for operators besides ncra
	and ncrcat, e.g. ncks, causes problems with wrapped and wrapped
	stride limits. One line fix to lmt_evl() restored old lmt_evl()
	dim_idx code to all operators except ncra and ncrcat. The new
	lmt_evl() code simply will not (and should not) handle wrapped
	coordinates for the record dimension in multi-file operators. 
	
1999-05-11  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Tagged this as nco1_1_31

	* Fixed ncks problem caused by not initializing all boolean flags
	of lmt structures in lmt_prs(). Changed lim to lmt.

	* Tagged this as nco1_1_30

	* Tentatively fixed record hyperslab problems introduced in 1_1_29
	by extensively generalizing and rewriting lim_evl()

	* Clarified in User's Guide that default behavior of stride is
	that -d time,,,srd is syntactically equivalent to -d time,0,,srd

	* Realized new record dimension features of nco1_1_29 were buggy
	when min and max limits were not both user-specified because then
	total number of records cannot be not known a priori

1999-05-10  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Tagged this as nco1_1_29

	* Cleaned up files for a clean compile with gcc -Wall

1999-05-09  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Toggled behavior of `ncks -a' so that default is now to
	alphabetize output

	* Fixed error (missing comma) in stride documentation in User's Guide

	* Implemented stride for the record dimension in ncra and ncrcat,
	e.g., ncra -d time,1,100,12 in1.nc in2.nc ... out.nc should now
	work correctly across files. Currently stride only works on the 
	record dimension of ncra and ncrcat, however, not the rest of
	the dimensions.

	* Implemented index-based hyperslabbing across files in the record
	dimension in the multi-file operators ncra and ncrcat, e.g., 
	ncra -d time,1,100 in1.nc in2.nc ... out.nc. The User's Guide said
	this feature had already been implemented, but that, apparently,
	was not true. The symptom was an "index out of range error" from
	netCDF. 

1999-04-27  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Tagged and released this as nco1_1_28

	* Isolated build procedure in nco_dst.pl with --bld option, off by
	default

	* Added --dat_cnt to nco_dst.pl to support dataproc.ucar.edu

	* Added SGIMP64 architecture to Makefile to support
	dataproc.ucar.edu. Default netCDF lib is r4i4 rather than r4i8 as
	on winterpark so I am avoiding the whole issue by using C_ONLY
	defaults and spoofing SGI64. nco_tst.sh executed without errors.

1999-04-20  Charlie Zender  <zender@flagstaff.cgd.ucar.edu>

	* Tagged and released this as nco1_1_26

	* Fixed so arguments to log10() are reasonable

	* Tagged and released this as nco1_1_25

	* New version requires -lm for log() and ceil() functions
	Added -lm to Makefile for some architecture which were missing it
	
	* Tagged and released this as nco1_1_24

	* Fixed bug where ncrcat and ncra omitted the last slice of the
	record dimension when -F (Fortran indexing) was user-specified AND
	user-specified hyperslab information was provided for some
	dimensions BUT not for the record dimension. This bug only
	affected ncrcat and ncra and only under these conditions. Thanks
	to John Sheldon <jps@server1.gfdl.gov> for pointing this out. 
	
1999-04-04  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Tagged and released this as nco1_1_22

	* Added -a switch to ncks for alphabetizing the output list.
	Added index_alpha() and changed lst_heapsort() to accept an
	boolean switch argument to accomplish this.

1999-02-25  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Added partial diagnostic message and workaround for TODO #116

1999-01-29  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Added nco_dst.pl to distribution

	* Changed ALPHA makefile to support native compilers (untested)

	* Added NETCDF2_ONLY option to circumvent ncdiff nc_inq_vartype()
	call.

1999-01-24  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Moved index.shtml to NCO doc directory

Thu Jan 21 15:23:02 1999  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Tagged and released this as nco1_1_20

	* Updated various portions of User's Guide

	* Added NETCDF2_ONLY token to eliminate nc_inq_libvers() call

1999-01-13  Charlie Zender  <zender@garcia.acd.ucar.edu>

	* Fixed bug in var_def() where wrong branch was executed when
	called by ncwa for files with no output dimensions. Symptom was a
	core dump or "ncvardef: ncid 4: Invalid dimension id or name"
	error. 

Wed Jan  6 17:55:26 1999  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Tagged and released this as nco1_1_18

	* Added kludge to ncwa to workaround bug in var_conform_dim()
	where var_conform_dim() sometimes allows the returned weight 
	not to have same size tally array as the template variable. This
	caused core dumps in ncwa.

Fri Dec  4 15:06:23 1998  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Tagged and released this as nco1_1_16

	* Added new logic switch DO_CONFORM to var_conform_dim() to allow
	ncwa to tell when to mask variables. Reran test cases, everything
	seems to be working. Documentation seems up-to-date.

1998-12-03  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Tagged and released this as nco1_1_15

	* Disabled ncwa -n and -W normalization options until I think of
	better way to implement them. -N option now causes ncwa not to
	divide by the denominator. Disabled -n and -W tests in nco_tst.sh
	(tests #2 and #3). 

1998-12-02  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Changed ncwa to default to weighting coordinates just like
	variables, i.e., toggle default value of -I switch

	* Added more exhaustive ncwa tests to nco_tst.sh

	* Rewrote ncwa section of User's Guide

1998-12-01  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Made sure ncwa weights were being masked when normalization was
	invoked. Formerly, they were not. This was a bug. The bug is now
	fixed. 

	* Rearranged normalization logic of ncwa

	* Removed special treatment of "gw" from ncwa

1998-11-25  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Allow hyperslab coordinate specification in exponential format
	even when decimal point is missing, e.g., "-d lon,36e1" is valid

	* var_conform_dim() now checks dimension names rather than IDs 

Mon Nov 23 17:29:02 1998  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Added -I switch to ncwa to enable weighting and masking of
	coordinates. Rewrote var_conform_dim() to allow mutually exclusive
	dimensions in ncwa.

1998-11-01  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Added wrapped coordinate caveats to hyperslabe section of
	manual, and implemented warning message whenever wrapped
	coordinates are used.

Sat Oct 31 14:56:33 1998  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Tagged and released this as version nco1_1_10

1998-10-29  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Fixed bug in ncra which only occured when NC_CHAR and NC_BYTE
	types also had a record dimension. var_lst_divide() decided these
	should be fixed variables, thus the output file size included the
	record dimension. The timecom variable in LSM history files was
	triggering this bug. Solution was to make ncra, like ncrcat,
	simply process ALL record variable even NC_CHAR and NC_BYTE,
	though the averaging operation on these types is still
	ill-defined. 

Wed Aug 26 16:30:27 1998  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Fixed bld/nco_tst.sh to work again at NCAR. `make test' now
	performs non-trivial tests of ncwa and ncdiff. Only works at
	NCAR (a necessary input file is rather large). 

Wed Aug 19 11:26:25 1998  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Fixed bug where pvmgetarch returned "SGI" on UNICOS 10.0.0.

	* Improved Makefile fortran switches and added convenience
	housekeeping targets.

	* Fixed bug where cvs_vrs_prs() crashed with -kkv exports

1998-08-18  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Added nco_vrs_prs() to parse NCO versions. NCO version is now
	always printed with -r option.

	* Fixed bug where -n NINTAP list did not recognize `.cdf'
	suffixes. 

Mon Aug 10 21:53:34 1998  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Split ncks -m option into -m and -M so now global metadata can
	be avoided if desired.

	* Fixed bug in ncrename where fl_in could be free()'d before it
	was malloc()'d in fl_nm_prs(). 

	* Fixed bug in ncdiff where variables of same rank but different
	types would cause core dump when being subtracted. Improved
	diagnostics for failures with ncdiff. 
	
1998-07-07  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Added -h option (suppresses history concatentation) to all
	operators. Changed existing ncks -h option to -m (for metadata). 

Sun Jun  7 17:45:20 1998  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Added more descriptive error diagnostics to ncvarid() calls 
	to var_lst_mk() ncks to report the names of user-specified
	variables which do not exist in input files. 

1998-05-16  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Improved nc_lib_vers_prn()

1998-05-08  Charlie Zender  <zender@sanitas-e0.cgd.ucar.edu>

	* Added improved error diagnostics to ncks when -A fails.
	Added improved error diagnostics to fl_out_close() and fl_mv(). 
	-r now prints library version for all operators.
	-r and usg_prn() now prints NCO homepage URL.

Wed Mar 11 11:16:39 1998  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Removed warning message for processed text fields in ncecat.

Mon Mar  2 22:00:59 1998  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Added nc_inq_libvers() call to ncwa to diagnose SGI
	problems. This is the first netCDF 3.x call in NCO. There's no
	stopping the avalanche now, so user's must install netCDF3.x

Mon Feb  9 09:50:26 1998  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Merged all three ncwa loops that access output and tally buffers
	so that these buffers can be allocated and deleted inside the main
	loop over variables. This reduces peak memory consumption by a
	factor of three and sustained memory by a factor of two to three.
	ncwa performance should be noticeably enhanced by this.	This
	problem affected, and this fix improves, only the ncwa operator. 
	
Sun Feb  8 21:50:32 1998  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Downloaded and altered pvmgetarch from pvm3.4b6. This version
	was returning SGI instead of CRAY on Ouray (=Cray J90 Unicos
	10.0.0) because pvmgetarch thinks machines with /bin/4D are SGI. 
	Distributing this customized version of pvmgetarch with NCO.
	Also changed new pvmgetarch so it returns SUNMP on any Sun
	multiprocessor, regardless of whether PVM_SHMEM is set to ON.

Mon Jan 19 13:13:08 1998  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Added HTML keywords and section on large numbers of files to the
	NCO User's Guide.

	* Eliminated compiler warnings caused by type--format mismatches
	from all source code. Should now compile without warnings on SGI.

	* Removed -ansi switch from Linux CFLAGS in order to support
	glibc2. glibc2 considers resolv.h non ANSI so that using the -ansi
	swithc results in unresolved tokens in system #include files.

Tue Dec  2 21:35:19 1997  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Added fl_nm_nbr_max and fl_nm_nbr_min as optional arguments 4
	and 5, respectively, to the -n switch on the multi-file
	operators. This allows the NINTAP automatic filename generation
	feature to handle input sets of cyclic filenames whose suffixes
	grow to fl_nm_nbr_max and then wrap back to fl_nm_nbr_min.
	Now, e.g., DJF files may be specified with -n 3,2,1,12,1.

Fri Nov 14 14:20:23 1997  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Added additional diagnostics concerning record dimensions to
	ncra and ncrcat. ncra and ncrcat now exit when called to operate
	on files without record dimensions.

	* Made ncar_csm_date() more fault tolerant for files which do not
	adhere to de facto atmospheric model time conventions involving
	date, time, nbdate.

1997-11-04  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Added error diagnostics for large malloc()'s in ncwa and var_dup
	in nc_utl.c. These should aid in identifying causes for core dumps
	when running with extremely large files or insufficient memory.

Fri Oct 17 12:53:54 1997  Charlie Zender  <zender@odin.cgd.ucar.edu>

	* Deprecated checking for "gw" for NCAR CSM conformance and
	replaced it with comparing global attribute "convention"'s value
	to "NCAR-CSM". Fixed up ncar_csm_date accordingly and rewrote
	warning messages.

	* Improved usg_prn for ncatted.

1997-10-12  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Fixed fl_out_open() to abort after receiving more than 10
	incorrect user responses. This fixes a bug where NCO would
	crash in non-interactive shells when the -O or -A options were
	omitted. 

1997-10-07  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Finished ncatted documentation. Cleaned up code to avoid
	compilation errors with SGI on memcpy(). Touched up manual.
	Releasing this as NCO Version 1.1.
	
Sun Sep 21 15:08:49 1997  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Merged WIN32 modifications into distribution. Added WIN32 and
	C_ONLY 	tokens to code. Relinked with netCDF 3.3.1, had no
	problems. 

Tue Sep 16 23:53:44 1997  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Wrote ncatted.

	* Fixed ncks to omit trailing commas after printing scalar
	attribute values.

Thu Aug 28 17:07:50 1997  Charlie Zender  <zender@heinlein.cgd.ucar.edu>

	* Rewrote ncdiff documention, which had many errors and
	omissions. 

Sat Jun 28 23:26:40 1997  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Fixed bug in cpy_var_val_lim() in ncks.c which caused core dumps
	when hyperslabbing on multiple coordinates where at least one of
	the coordinates was wrapped.

Tue Jun 17 14:15:53 1997  Charlie Zender  <zender@heinlein.cgd.ucar.edu>

	* Changed Makefile compile rules for f90 on CRAY to explicitly
 	preprocess *.F files. This had stopped working, perhaps when I
	switched CRAY default from f77 to f90.

Fri May 30 13:12:25 1997  Charlie Zender  <zender@heinlein.cgd.ucar.edu>

	* Improved mss_val_get to allow any NC_TYPE for missing_value
	attribute. This was needed for ARM files which store missing_value
	as an NCCHAR. Converting NCCHAR to short, long, float, or double
	now uses strdod() instead of implicit type conversion.

	* Added routines to process time variables in ARM files.

	* Added hyam,hybm,hyai,hybi to list of variables which will not 
	be differenced by ncdiff.

	* ncdiff now chooses mss_val from either file where it's valid,
	and from fl_1 when it's valid in both. This fixed the last known
	bug in NCO.

Tue May 27 00:08:23 1997  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Moved var_refresh() out of inner loop to file loop level in
	ncra.c. This should speed things up a little because var_refresh()
	can be an expensive call since it calls mss_val_get().

	* Altered mss_val_get to accomodate missing_value attributes whose
	type did not match their variable's type. Also made allowance for
	missing_value's of type NC_CHAR, as in ARM data files. Added three
	routines, arm_inq(), arm_time_mk(), and arm_time_install(), which
	implemente the ARM convention time=base_time+time_offset
	convention in ncrcat.

Fri May 16 16:28:02 1997  Charlie Zender  <zender@heinlein.cgd.ucar.edu>

	* Fixed bug in srt vector in ncdiff. Now ncdiff should be working
	with hyperslabs.

Mon May  5 17:55:00 1997  Charlie Zender  <zender@heinlein.cgd.ucar.edu>

	* Implemented nclong fix for SGI64. This involved very slight
	changes: made defs.h:ptr_unn->lp point to nclong rather than long
	cast_void_nctype():ptr->lp evaluates to (nclong *).

Sun Mar 30 15:26:10 1997  Charlie Zender  <zender@z.ppp.ucar.edu>

	* added and removed some return() statements to nc_utl.c to stop
	compiler warnings from SGI cc.

	* fixed small memory leak and bug in var_srt_zero() where var->srt
	was being allocated twice, and the xrf sct was pointing to the
	copy that had not been zeroed.

Thu Mar 27 15:13:18 1997  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Removed ncap from target all in Makefile

	* Added section describing differences between ncra, ncea, ncrcat,
	and ncecat to nco.texi.

	* Fixed memory leak in ncecat in which memory never seemed
	to be deallocated until the end of the file loop.

Wed Mar 26 21:13:09 1997  Charlie Zender  <zender@z.ppp.ucar.edu>

	* Added nco.ps, nco.dvi, nco.html, texi2html, texi2dvi to
	distribution

	* Changed ncks -s option to accept full printf() style format
	strings 

	* Fixed memory leak in var_get() in nc_utl.c which caused memory
	to be allocated twice. This also fixed longstanding performance
	problem where ncrcat() allocated memory for entire array not just
	current record. Thanks to jps@GFDL.GOV (John Sheldon) for
	discovering this bug.

	* General release of nco-0.9 on netCDF and CCM mailing lists 

Thu Feb  8 23:01:04 MST 1996  Charlie Zender  <zender@ncar.ucar.edu>

	* First internal CGD release of operator set known as ncz-0.9

Sat May 15 23:01:04 MST 1993  Charlie Zender  <zender@ncar.ucar.edu>

	* First RCS snapshot of ncks.c in directory nc.
	ncks.c began life as c_template.c
