File: ChangeLog

package info (click to toggle)
nco 2.2.0-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,652 kB
  • ctags: 1,224
  • sloc: ansic: 11,322; cpp: 1,790; makefile: 1,369; lex: 582; sh: 547; fortran: 487; yacc: 435; perl: 278
file content (1429 lines) | stat: -rw-r--r-- 50,085 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
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