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



	
