NCO Homepage
Author: Charles S. Zender
Keywords: NCO Homepage, netCDF, netCDF operator, GCM, HDF, scientific data

## Release Highlights from 200001–201712 (versions 1.1.47–4.7.1)

- NCO 4.7.1: Conda Windows port; `ncclimo --clm_md=dly/ann` fix; JSON tweaks;
- NCO 4.7.0: CMake build-engine intrinsic math, networking support on MS Windows; `ncclimo/ncremap --fl_fmt` options; `ncclimo/ncremap --dfl_lvl` compression; `ncclimo --ppc` compression; `ncra/ncrcat` fix negative hyperslab off-by-one error;
- NCO 4.6.9: CDF5 autoconversion, features to help detect corruption; CMake build-engine is mature; `ncks` estimates correct filesizes; `ncks` CDL prints variable RAM size; `ncks` prints CDL by default;
- NCO 4.6.8: `ncap2` full chunking options; `ncclimo --seasons` custom season support; `ncks --dt_fmt` put the “T” in time; `ncremap --msk_[src/dst]=none` mask suppression; `ncremap -3,-4,-5,-6,-7` output format; `ncwa -d -w -m` hyperslab with mask or weight bugfix;
- NCO 4.6.7: Multi-argument (MTA) flag parsing; `ncap2` in-fill functions simple_fill_miss() + weighted_fill_miss(); `ncap2` duplicates input variable chunking; `ncatted` NC4 bugfix; `ncremap -P sgs, alm, clm, cice` sub-gridscale remapping; `ncremap` msk_src/dst conversion; `ncremap` src/dst_regional hints to ERWG;
- NCO 4.6.6: `ncks --cdl` prints units when dbg_lvl ≥ 1; `ncks --cdl` prints braces for compound record variables; `ncks` outputs UGRID-format rectangular grids; `ncremap/ncclimo no_cll_msr,no_frm_trm,no_ntv_tms,no_stg_grd` switches; `ncremap` masks;
- NCO 4.6.5: `ncks --cal` prints human-legible ISO8601 dates; `ncclimo/ncremap --version` switch; `ncremap --vrb_lvl` verbosity level; `ncremap` refactor dimension inferral, fix POP re-grids; Set chunk cache-size with `--cnk_csh`;
- NCO 4.6.4: `ncremap` add `w_stag` weights to FV output; `ncclimo` timeseries reshaping ("splitting") mode; `ncclimo` daily climo mode; Extract variables in CF `cell_measures`, `formula_terms` attributes; Fix UDUnits calendar bug introduced in 4.6.3;
- NCO 4.6.3: CMake build option; `ncap2` udunits() function; `ncclimo` supports binary climos, annual mode; `ncclimo, ncremap` support long-options; `ncks --cdl` attribute types as comments; `ncks --json` strided brackets for multi-dimensional arrays;
- NCO 4.6.2: Improve `ncclimo, ncremap` behavior in `module` environments; `ncks --json` for JSON output; Multi-argument support for `--gaa`, `--rgr`, `--ppc`, `--trr` options;
- NCO 4.6.1: `ncclimo` incremental mode; `ncflint -N` normalization;
- NCO 4.6.0: `ncap2` LHC metadata propagation; `ncatted` nappend mode; `ncclimo` debut; `ncks` reads ENVI bsq/bip/bil images; `ncks` Terraref features; `ncks -A` append consistency; `ncpdq` fix permutation with multiple groups; `ncra --cb` climatology bounds `ncremap` uses CF to find coordinates; `ncremap` uses $TMPDIR;
- NCO 4.5.5: Initial CDF5 support; `ncap2` fix negative dimension indices handling; `ncremap -P airs,hirdls,mls,mpas`; `nces/ncra` fix `-y mebs` normalization, add `-y tabs`; `ncatted/ncrename/ncpdq` fix `--gaa`;
- NCO 4.5.4: `ncap2` syntax simplification/fixes; `ncks -V` bugfix; `ncks` XML `_Unsigned` attribute; `ncremap` debuts; `ncwa` fix whitespace in `coordinates` attribute;
- NCO 4.5.3: `ncatted` fix deletion of all attributes; `ncecat` fix `gag` mode; `ncks` infers rectangular and curvilinear grids; `ncks --xtn` specifies extensive variables; `ncks` regridder fix multi-level field normalization;
- NCO 4.5.2: All operators support `--glb_att_add`; `ncks` better support for `fracarea`, `mask`, and displaced-pole grids; `ncks` diagnoses `area` for bilinear remapping and when area_b equals 0.0; `ncks` generates exact Gaussian and equi-angular, rectangular, and regional gridfiles; `ncks` regrid with old, new, and regional TempestRemap mapfiles; `ncra -n NINTAP` option understands calendar month counting; `ncra -N` avoids normalizing by weights; `ncra -w` bugfix with missing value normalization; `ncwa` bugfix when weights were not found;
- NCO 4.5.1: `cell_method` improvments; `ncap2` gets mibs()/mabs()/mebs() methods; `ncatted` regular expressions in att_nm; `ncks` regrid using TempestRemap mapfiles; `ncra` weights with --wgt wgt_nm;
- NCO 4.5.0: Regridding with `ncks --map`; `date/time_written` updates; `history` provenance with `-A` (append-mode); `ncdismember` uploads to NERC;
- NCO 4.4.9: Output chunking map/policy nco/nco = rew/all is default for netCDF3 input; Turn-off MM3 workaround for MM3->MM4 copying to speed-up compression-induced chunking; LFP chunking uses “reasonable defaults” when variable smaller than default chunksize; Shuffle by default when manually deflating; Support CF `climatology` attribute; Output chunking defaults to `rew/all` on netCDF3 input; Unchunking plays nicely with `shuffle`; `ncra` weights with --wgt 1,2,3; `ncks` suggests `-C` with `-x -v crd`; `ncwa` modifies `coordinates` attribute;
- NCO 4.4.8: Precision-Preserving Compression with `--ppc`; Arithmetic operators `-y mabs/mebs/mibs`
- NCO 4.4.7: `cnk_min` minimum chunksize; Chunking `cnk_map=rew`; Smarter chunking defaults;
- NCO 4.4.6: `-0` hyperslabs; `configure` DAP correctly; HDF4 chunking and deflation; netCDF4 stride (NC4_SRD) bugfix; `ncap2` command line args with scripts; `ncra --dbl` averaging packed variables with missing values bugfix; `ncwa --dbl` minimization/maximization of packed variables bugfix; `ncks _SOURCE_FORMAT` and `-V`; `ncrename` re-write
- NCO 4.4.5: DAP on HTTPS; `ancillary_variables` for CF; `ncks --grp_xtr_var_xcl` subsetting Chunking `cnk_plc=r1d`; Default chunking policy/map is `xst/xst`; Fix `ncpdq` dimension-reversal parsing; Chunking while hyperslabbing bugfix; Correctly parse MS Windows volume names like `C:\foo`
- NCO 4.4.4: netCDF'ize non-compliant element names; `-x var` tolerates non-existence; `--rad` orphan dimensions; `ncwa --mask_condition` bugfix
- NCO 4.4.3: Faster DAP access to strided data; Group broadcasting for ensembles;
- NCO 4.4.2: CF `cell_methods` support; Bugfixes for `nces` memory, LLVM/clang builds, `-X`, RX's with groups, `--cnk_dmn`;
- NCO 4.4.1: Group support for `-X` and `--cnk_dmn`; Chunk and uncompress simultaneously; `ncra/ncea/ncrcat` bugfix
- NCO 4.4.0: Optimizations; `ncdismember` awesomeness; `ncks --hdn`; `ncks --fix_rec_dmn=all`; `ncks` autoconversion; `ncrename` output path; `ncra --mro` bugfix; `ncra/ncrcat` stride bugfix; Better chunking; Group support for `ncwa -w -m`;
- NCO 4.3.9: New operator `nces`; Full XML/NcML compliance; `ncatted` NaN bugfix;
- NCO 4.3.8: `ncatted` group features;
- NCO 4.3.7: HDF4 support; XML/NcML data support; Multiple record dimension support with `ncpdq, ncecat --mrd`; `ncrename` group features; `ncap2` file bugfix; `ncecat` ID bugfix; `ncwa -b` bugfix;
- NCO 4.3.6: `--flt` default; `ncpdq/ncecat` leave only one record dimension; `ncwa/nces` bugfixes; `ncdismember`
- NCO 4.3.5: `nces/ncra/ncrcat` groups with `-g -G --unn`;
`nces/ncra/ncwa` float→double coercion with `--dbl`; `ncwa -d` bugfix
- NCO 4.3.4: HDF unpacking `--hdf_upk`; `ncpdq` unpacking bugfix; CDL printing legibility;
- NCO 4.3.3: CDL printing `ncks --cdl`; `ncrename -g`; `ncwa` groups with `-g -G --unn`;
- NCO 4.3.2: `ncflint/ncpdq` groups with -g -G --unn; `ncks -X` bugfix;
- NCO 4.3.1: `ncbo` symmetry, group broadcasting; `ncbo -G --unn`; `ncecat` RAG; `ncbo` CF bugfix; `ncatted` bugfix; Windows DAP;
- NCO 4.3.0: `ncbo -g` groups; `ncatted` NULs; `ncap2` rounding; `ncks` metadata bugfix
- NCO 4.2.6: Record appending with `ncra/ncrcat --rec_apn`; `ncflint --fix_rec_crd`; RX's in full paths; Correct dimension/coordinate scopes; `ncks` MM3 workaround;
- NCO 4.2.5: `ncks --mk_rec_dmn` bugfix; `ncks` subsetting bugfix
- NCO 4.2.4: Group wildcards; Group anchoring and recursion; Intersection/union modes; `ncrename` global att. handling; `nces` bugfix; `ncra` bugfix
- NCO 4.2.3: Group Path Editing (GPE); `ncecat` bugfix
- NCO 4.2.2: `ncks`, `ncecat` support groups; `--hdr_pad` all operators; `ncks` prints underscores; fixes to `--[mk/fix]_rec_dmn`; `ncpdq` fix; `ncwa` on Windows;
- NCO 4.2.1: `--ram_all` for diskless files; `--no_tmp_fl` to bypass temporary files; Negative indices for hyperslabs; `ncpdq` unpacks coordinate variables; `ncra/ncrcat` SSC/MRO options; `ncra/ncrcat` rebase bounds;
- NCO 4.2.0: `ncecat` "fixes" auxiliary coordinates and bounds; `ncks` uses `nc__open`, format `NC_INT` with `%i`; `ncra -y ttl` fix; `ncrcat` UDUnits fix; `ncwa` and `ncap2` limited NaN support; Microsoft Visual Studio support;
- NCO 4.1.0: MD5 digests; `ncap2` sorts & maps; `ncks` MM3 workaround; `ncrename/ncatted` chmods; `ncatted` NaN support
- NCO 4.0.9: Fix over-zealous `ncap2` packing; Fix `nces -y ttl`; Fix/improve `ncap2 print, array()`; Warn when appending variables of suspicious record length; Warn when `NC_MAX_ATTRS` exceeded
- NCO 4.0.8: Support HPSS; Workaround netCDF `NOFILL` bug (upgrade recommended); Support CF `bounds`; CF `noleap` not `no_leap`; Fix `ncatted` overwrite-mode; Fix `NC_BYTE` printing
- NCO 4.0.7: Fix degenerate hyperslab bug (upgrade recommended)
- NCO 4.0.6: `clang`-compliance; Fix `ncra` YYYYMMDD-`date` bug; Extract all associated coordinates; Tighten `ncbo` warnings; `ncpdq` warns when _FillValue outside packing range
- NCO 4.0.5: Fix `ncks` hyperslabbing bug; Fix `ncra` CF "coordinate" bug
- NCO 4.0.4: Chunking in all operators; preserve deflation; `ncks` print formatting; Fix `ncrename` bug; Do not pack coordinate variables
- NCO 4.0.3: Fix `configure` for ncap2, netCDF4, UDUnits2, netCDF-DAP; Fix `ncbo` bug under AIX xlC; Fix `ncra` bug for some CF-compliant dates.
- NCO 4.0.2: Consistent deflation, chunking with `netCDF4_classic`; Fix `ncap2` RAM vars, 1-D arrays; Fix `ncatted` appending `NUL`s.
- NCO 4.0.1: Easily create/remove record dimensions with `ncks --mk_rec_dmn`, `--fix_rec_dmn`;
- NCO 4.0.0: Bilinear interpolation, GSL fitting; Chunking improvements; Better support CF `calendar` and `coordinate` attributes
- NCO 3.9.9: netCDF4 chunking and `NC_STRING` support; GSL statistics, interpolation functions; UDUnits2 `time-since` support; `ncrcat` re-basing
- NCO 3.9.8: `ncap2` supports `sort()`, `array()`; better DAP/libnetcdf and UDUnits2 builds; GSL distribution/RNG functions
- NCO 3.9.7: Improve GSL-build support; `ncap2` threading improvements; `ncks --no_dmn_var_nm` printing
- NCO 3.9.6: Fix OpenMP MSA bug (upgrade highly recommended); Memory management to improve threading; `ncatted` workaround for netCDF4 `_FillValue`; disable OpenMP with netCDF4/HDF; no math on type `NC_CHAR`; `ncap2` documentation, better missing value propagation, `#include` files, GSL math functions
- NCO 3.9.5: Multi-slabbing (MSA) and `-X` everywhere; `ncecat -M`; netCDF4-enabled builds on Cygwin; `ncap2` builds on Solaris
- NCO 3.9.4: File consanguinity; `ncks`: CF auxiliary coords, LZ stats; `ncap2`: masks, index arrays, print attributes, OpenMP, `atan2()`, `pow()`
- NCO 3.9.3: SWAMP release; `ncecat -u`; `wget` URLs; GCC 4.2; `ncap2` OpenMP
- NCO 3.9.2: `_FillValue` supplants `missing_value`; `UDUnits2 support`; `ncap2` type-conversion support and printing; netCDF4 `configure` fixes; Change licenses to GPL3 and FDL1.2
- NCO 3.9.1: Support lossless netCDF4/HDF deflation; Improve Intel compiler support; `ncap2` for/while loops; various and sundry build fixes
- NCO 3.9.0: Support netCDF4 types (`ubyte`, `ushort`, `uint`, `int64`, and `uint64`); Control `ncks` metadata copying; Fix `ncbo` packed valued bug (upgrade recommended); Improve IRIX 6.5 support
- NCO 3.2.0: More forgiving exclusion list (`-x -v var_nm`) handling; Fix `rmssdn` normalization; Support Mac OS X on Intel; Documentation bugfixes
- NCO 3.1.9: `ncap2` in RPM packages; Quieter output; AIX `configure` supports `ncap2`; Update to DAP for netCDF 3.6.2; Fix `nc[erw]a` for coordinate min/max/ttl; `ncecat` allows files to differ in record dimension size
- NCO 3.1.8: Support `_FillValue` with compile-time switch; Debian package synchronized, includes `ncap2`
- NCO 3.1.7: `ncap2` “double-parsing”, array initialization, supersedes `ncap`
- NCO 3.1.6: Support stride in all hyperslabbing operators; change more WARNINGs to INFOs
- NCO 3.1.5: New `ncap2` array and hyperslab features; change some WARNINGs to INFOs, add Pathscale and update PGI and Intel compiler support
- NCO 3.1.4: Fix `ncbo` memory problem; report timer results
- NCO 3.1.3: `ncap2` automatically propagates attributes to new/derived variables; NCO handles record variables with zero records; support CF `coordinates` convention; `ncwa -b` retains degenerate dimensions; build fixes for Cray T3E, Solaris, Cygwin.
- NCO 3.1.2: `ncap2` control structures (conditionals, loops, etc.); keep non-processed data packed in output file; binary operators `ncbo` and `ncflint` work when only one variable has `missing_value` attribute; change `ncra` and `nces` to always average coordinate variables
- NCO 3.1.1: NCO builds (again) with C++ compilers; ncap2 development code; server-side extensions
- NCO 3.1.0: MPI operators are bug-free; fix ./configure for MPI and netCDF4; MRV algorithm speeds up `ncwa` 5—10 times; `ncap` random number generator `rnd_nbr()`
- NCO 3.0.3: Eliminate all critical read regions (accelerates all SMP operators); builds with netCDF4 alpha; read NETCDF4_CLASSIC (i.e., HDF) files automatically; write NETCDF4 files on request; benchmark results quantify parallelism.
- NCO 3.0.2: Fewer critical read regions; all known memory leaks plugged; better Intel compiler support; `SFTP` protocol support; FTP protocol supports `.netrc`-based passwords; better model grid-property-awareness (e.g., `lat_bnds`); `ncatted` `ncks`, `ncrename` support metadata header padding with `--hdr`; `ncbo` supports heterogeneous variable ordering; `ncatted` bugfix
- NCO 3.0.1: benchmarks; `ncks` printing tweaks; memory cleanup; `ncap` double-parse speedup and exponentiation bugfix; thread operators by default
- NCO 3.0.0: New `ncks -P` print switch; `ncap` optimizations; `-Z` option supports 64-bit offsets (requires netCDF 3.6); NEC SX build improvements; support GCC 3.4.X; `nco_put_vara()` overloads in `libnco_c++`
- NCO 2.9.9: `ncpdq` packs/unpacks entire files; `ncbo` is threaded
- NCO 2.9.8: `ncpdq` released; `ncwa --msk_sng` consolidated mask switch; C99 compiler required
- NCO 2.9.7: Read input file lists from `stdin`; write `nco_input_file_list` attributes; add `nco_put_att<int,short,long>` functions to libnco_c++; large file support (LFS); write `nco_openmp_thread_number` attribute
- NCO 2.9.6: Support `-o fl_out` syntax; 64-bit ABI for x86_64; Debian builds libnco_c++
- NCO 2.9.5: `ncflint` handles `missing_value` data better, is commutative when weights are equal
- NCO 2.9.4: `ncecat` works on pure scalar files; change to `cvs.sf.net`; AIX GCC builds
- NCO 2.9.3: `ncra` and `nces` now work correctly when `missing_value` equals zero or any intermediate sums
- NCO 2.9.2: `ncap` `S/V`, `S%V`, and `S^V` operations fixed (`S` = scalar, `V` = variable)
- NCO 2.9.1: `ncwa` works again on packed `NC_FLOAT` data (broke when?)
- NCO 2.9.0: Complete `ncap` modulo operator (`V%S`) and generic exponentiation (`V^S`), scalar divided by variable (`S/V`); workaround stack memory problem with GCC extensions; fix `make check`
- NCO 2.8.8: `--enable-[optimize/debug]-custom` options for GCC work again (broke in 2.8.6)
- NCO 2.8.7: `ncap` packing works again (broke in 2.8.4); Cygwin builds work again
- NCO 2.8.6: AIX and IRIX builds work again; custom GCC builds with `-Werror`
- NCO 2.8.5: Solaris `make install` works; `ncap` changes attribute values correctly; Support DODS 3.4+, deprecate 3.3-; add `--enable-[optimize/debug]-custom` options to `./configure`
- NCO 2.8.4: Index-based hyperslabs work again (broke in 2.7.3, upgrade highly recommended); `ncap` peak memory usage reduced still more; support for AMD Opteron x86_64 architecture
- NCO 2.8.3: Fix big `ncap` memory leak; fix regressions; remove scary packing warnings
- NCO 2.8.2: `ncbo` handles distinct `missing_value`s correctly; improve error diagnostics
- NCO 2.8.1: “Variable wildcarding”—extended regular expressions in `-v var,...` lists—support in all operators
- NCO 2.8.0: New “binary” operator `ncbo`, obsoletes `ncdiff`; Debian integration
- NCO 2.7.4: Autotools build support for AIX; fix UDUnits confusion with floating point hyperslab specifications
- NCO 2.7.3: Support UDUnits (and some CF) conventions, e.g., `ncks -d wvl "1 picometer","1 furlong" -d time,"2001-03-19 06:00:0.0","2001-03-19 18:00:0.0"`
- NCO 2.7.2: Printing (`ncks -H`) plays well with multi-slabbing
- NCO 2.7.1: (Packaged) Fallback to B. Sittler's `getopt()` for long option support; store fixed, packed variables correctly with `ncap`.
- NCO 2.7.0: Support for GNU/POSIX long options; `ncks` introduces multi-slabbing (= multiple hyperslabs) capability
- NCO 2.6.6: Fix and document `ncrename` attribute renaming; add type conversion functions to `ncap`
- NCO 2.6.5: Cray, Sun build improvements
- NCO 2.6.4: Mac OS X, NEC, SGI build improvements
- NCO 2.6.3: Mac OS X builds work seamlessly; documentation fixed
- NCO 2.6.2: Major improvements in autotools support; `ncap` supports user-defined dimensions
- NCO 2.6.1: Minor fix to unpacking support
- NCO 2.6.0: All arithmetic operators (`ncap`, `ncdiff`, `nces`, `ncflint`, `ncra`) support unpacking
- NCO 2.5.6: Handle `missing_value` correctly for integer variables in `ncra`, merge `autoconf` build
- NCO 2.5.5: Handle files without existing global “`History`” attribute correctly
- NCO 2.5.4: Add support NEC-SX support; update Cray support; small build changes
- NCO 2.5.3: Fix native builds under MS Windows with Cygwin `ncap`; hint to `ncwa`
- NCO 2.5.2: Add math functions to `ncap`; hint to `ncwa`
- NCO 2.5.1: `ncatted` deletes all attributes of `att_var` when `att_nm` not specified
- NCO 2.5.0: man(1) pages from Debian distribution
- NCO 2.4.6: Free (speech) sort routines
- NCO 2.4.5: Arithmetic speedups
- NCO 2.4.4: 64-bit AIX builds
- NCO 2.4.3: Handle non-standard “History” attributes
- NCO 2.4.2: `ncap` supports nesting files with `#include`
- NCO 2.4.0: `ncks` supports writing native binary output with `-b` switch
- NCO 2.3.1: `ncap` builds on all Unices
- NCO 2.3.0: Library redesign
- NCO 2.2.4: `ncap` fully supports packing and unpacking variables
- NCO 2.2.3: `ncap` supports manually unpacking variables stored with `scale_factor` and `add_offset`
- NCO 2.2.2: fix rare `ncwa` crash with weights
- NCO 2.2.1: fix `ncap` divide and `fmodf` bugs
- NCO 2.2.0: (RPM available) 20020203: `ncap` public debut (has division error, please upgrade)
- NCO 2.1.3: `ncap` implements LHS casting
- NCO 2.1.2: C++ API to netcdf; libnco_c++ open for business
- NCO 2.1.0: `ncap` full lexer/parser operational
- NCO 2.0.3: small fixes to 2.0.0 (e.g., `ncks` printing)
- NCO 2.0.2: Add packing/unpacking capabilities based on `scale_factor` and `add_offset` convention
- NCO 2.0.1: Add user-configurable multi-threaded capability to arithmetic-intensive operators `ncwa`, `nces`, and `ncra`
- NCO 2.0.0: (RPM available) 20010507: Switched all internal calls to netCDF 3.x API
- NCO 1.2.2: 20010211: Allow weights with `ncwa` in min/max/ttl operations; easier building with HDF4. `ncrename` can now work on specific variables rather than whole file. `ncks` has `-q` option for cleaner printing
- NCO 1.2.1: 20000828: Added type-conversion of integers to floating point before arithmetic; fixed broken `-v` option
- NCO 1.2: 20000730: Added non-linear operations to `ncra/nces` and `ncwa`: min,max,total,rms,rmssdn,sqrt. Added DODS compliance.
- NCO 1.1.48: 20000515: Potentially serious bugfix to `ncdiff`, recommend upgrade
- NCO 1.1.47: 20000510: Improved `ncra` and `ncrcat` to allow lazier specifications of input files