Skip to content
Commits on Source (5)
......@@ -2,17 +2,17 @@
# http://cvs.fedoraproject.org/viewvc/devel/nco/nco.spec?view=co
Name: nco
Version: 4.7.7
Version: 4.7.8
Release: 1%{?dist}
Summary: Programs that manipulate netCDF files
Group: Applications/Engineering
License: GPL3
URL: http://nco.sf.net/
# Obtain NCO version 4.7.7-1 tar.gz from Sourceforge using CVS:
# Obtain NCO version 4.7.8-1 tar.gz from Sourceforge using CVS:
# cvs -d:pserver:anonymous@nco.cvs.sf.net:/cvsroot/nco login
# cvs -z3 -d:pserver:anonymous@nco.cvs.sf.net:/cvsroot/nco co -r nco-4.7.7-1 -d nco-%{version} nco
# tar czf nco-%{version}.tar.gz --exclude='nco-4.7.7/debian*' --exclude='.cvsignore' --exclude=ncap_lex.c --exclude='ncap_yacc.[ch]' ./nco-%{version}
# cvs -z3 -d:pserver:anonymous@nco.cvs.sf.net:/cvsroot/nco co -r nco-4.7.8-1 -d nco-%{version} nco
# tar czf nco-%{version}.tar.gz --exclude='nco-4.7.8/debian*' --exclude='.cvsignore' --exclude=ncap_lex.c --exclude='ncap_yacc.[ch]' ./nco-%{version}
Source0: nco-%{version}.tar.gz
#Patch0: nco_install_C_headers.patch
#Patch1: nco_find_udunits-dat.patch
......@@ -108,6 +108,9 @@ fi
# %{_libdir}/libnco++.so
%changelog
* Fri Nov 16 2018 Charlie Zender <zender@uci.edu> - 4.7.8-1
- new upstream 4.7.8
* Fri Sep 21 2018 Charlie Zender <zender@uci.edu> - 4.7.7-1
- new upstream 4.7.7
......
......@@ -5,20 +5,20 @@
# Usage:
# Export tagged, public versions
# /usr/bin/scp ${DATA}/nco-4.7.7.tar.gz zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln nco-4.7.7 # Build, do not release on SF
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln --sf nco-4.7.7 # Build, release on SF
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --nst_all nco-4.7.7 # Install, do not build
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln --nst_all nco-4.7.7 # Build and install
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --acd_cnt nco-4.7.7
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --acd_prs nco-4.7.7
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --cgd_cnt nco-4.7.7
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --cray_prs nco-4.7.7
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --bbl_cnt nco-4.7.7
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --blk_cnt nco-4.7.7
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --dat_cnt nco-4.7.7
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --ute_prs nco-4.7.7
# /usr/bin/scp ${DATA}/nco-4.7.8.tar.gz zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln nco-4.7.8 # Build, do not release on SF
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln --sf nco-4.7.8 # Build, release on SF
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --nst_all nco-4.7.8 # Install, do not build
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln --nst_all nco-4.7.8 # Build and install
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --acd_cnt nco-4.7.8
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --acd_prs nco-4.7.8
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --cgd_cnt nco-4.7.8
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --cray_prs nco-4.7.8
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --bbl_cnt nco-4.7.8
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --blk_cnt nco-4.7.8
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --dat_cnt nco-4.7.8
# ${HOME}/nco/bld/nco_dst.pl --dbg=2 --cln --ute_prs nco-4.7.8
# Export daily snapshot
# ${HOME}/nco/bld/nco_dst.pl --dbg=2
......@@ -256,7 +256,7 @@ if($bld){
# Set up FTP server
chdir $dst_pth_pfx or die "$prg_nm: ERROR unable to chdir to $dst_pth_pfx: $!\n"; # $! is system error string
cmd_prc("$cp_cmd $doc_fl ./$dst_vrs/doc"); # Copy derived documentation to source directory
cmd_prc("$tar_cmd cvzf $dst_fl --exclude='nco-4.7.7/debian*' --exclude='.cvsignore' --exclude=ncap_lex.c --exclude=ncap_yacc.[ch] ./$dst_vrs"); # Create gzipped tarfile
cmd_prc("$tar_cmd cvzf $dst_fl --exclude='nco-4.7.8/debian*' --exclude='.cvsignore' --exclude=ncap_lex.c --exclude=ncap_yacc.[ch] ./$dst_vrs"); # Create gzipped tarfile
cmd_prc("$rsh_cmd $www_mch $rm_cmd $www_drc/src/$dst_fl"); # Remove any distribution with same name
if($dly_snp){cmd_prc("$rsh_cmd $www_mch $rm_cmd -r $www_drc/src/nco-????????.tar.gz");} # Remove previous daily snapshots from WWW server
cmd_prc("$rcp_cmd $dst_fl $www_mch:$www_drc/src"); # Copy local tarfile to WWW server
......
......@@ -142,6 +142,12 @@
/* Define to 1 if <gsl_sf_gamma.h> is present */
#undef HAVE_GSL_H
/* Define to 1 if compiler finds external `htonl' function */
#undef HAVE_HTONL
/* Define to 1 if compiler finds external `htons' function */
#undef HAVE_HTONS
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
......@@ -265,6 +271,12 @@
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* Define to 1 if compiler finds external `ntohl' function */
#undef HAVE_NTOHL
/* Define to 1 if compiler finds external `ntohs' function */
#undef HAVE_NTOHS
/* Define to 1 if you have the `pow' function. */
#undef HAVE_POW
......@@ -392,6 +404,15 @@
/* Define if C++ compiler has working valarray<T> */
#undef HAVE_VALARRAY
/* Define to 1 if compiler finds external `__builtin_bswap16' function */
#undef HAVE___BUILTIN_BSWAP16
/* Define to 1 if compiler finds external `__builtin_bswap32' function */
#undef HAVE___BUILTIN_BSWAP32
/* Define to 1 if compiler finds external `__builtin_bswap64' function */
#undef HAVE___BUILTIN_BSWAP64
/* Hostname */
#undef HOST
......@@ -511,6 +532,12 @@
/* Define to 1 if compiler needs external `getopt_long' function */
#undef NEED_GETOPT_LONG
/* Define to 1 if compiler needs external `htonl' function */
#undef NEED_HTONL
/* Define to 1 if compiler needs external `htons' function */
#undef NEED_HTONS
/* Define to 1 if compiler needs external `log10f' function */
#undef NEED_LOG10F
......@@ -535,6 +562,12 @@
/* Define to 1 if compiler needs external `nearbyintf' function */
#undef NEED_NEARBYINTF
/* Define to 1 if compiler needs external `ntohl' function */
#undef NEED_NTOHL
/* Define to 1 if compiler needs external `ntohs' function */
#undef NEED_NTOHS
/* Define to 1 if compiler needs external `powf' function */
#undef NEED_POWF
......@@ -583,6 +616,15 @@
/* Define to 1 if compiler needs external `truncf' function */
#undef NEED_TRUNCF
/* Define to 1 if compiler needs external `__builtin_bswap16' function */
#undef NEED___BUILTIN_BSWAP16
/* Define to 1 if compiler needs external `__builtin_bswap32' function */
#undef NEED___BUILTIN_BSWAP32
/* Define to 1 if compiler needs external `__builtin_bswap64' function */
#undef NEED___BUILTIN_BSWAP64
/* No netCDF version 2.x API */
#undef NO_NETCDF_2
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for NCO netCDF Operators 4.7.7.
# Generated by GNU Autoconf 2.69 for NCO netCDF Operators 4.7.8.
#
# Report bugs to <nco-bugs@lists.sourceforge.net>.
#
......@@ -592,8 +592,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='NCO netCDF Operators'
PACKAGE_TARNAME='nco'
PACKAGE_VERSION='4.7.7'
PACKAGE_STRING='NCO netCDF Operators 4.7.7'
PACKAGE_VERSION='4.7.8'
PACKAGE_STRING='NCO netCDF Operators 4.7.8'
PACKAGE_BUGREPORT='nco-bugs@lists.sourceforge.net'
PACKAGE_URL=''
 
......@@ -1388,7 +1388,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures NCO netCDF Operators 4.7.7 to adapt to many kinds of systems.
\`configure' configures NCO netCDF Operators 4.7.8 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -1459,7 +1459,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of NCO netCDF Operators 4.7.7:";;
short | recursive ) echo "Configuration of NCO netCDF Operators 4.7.8:";;
esac
cat <<\_ACEOF
 
......@@ -1625,7 +1625,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
NCO netCDF Operators configure 4.7.7
NCO netCDF Operators configure 4.7.8
generated by GNU Autoconf 2.69
 
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -2491,7 +2491,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by NCO netCDF Operators $as_me 4.7.7, which was
It was created by NCO netCDF Operators $as_me 4.7.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
$ $0 $@
......@@ -3746,7 +3746,7 @@ fi
 
# Define the identity of the package.
PACKAGE='nco'
VERSION='4.7.7'
VERSION='4.7.8'
 
 
cat >>confdefs.h <<_ACEOF
......@@ -18973,6 +18973,105 @@ _ACEOF
 
fi
 
ac_fn_c_check_func "$LINENO" "htonl" "ac_cv_func_htonl"
if test "x$ac_cv_func_htonl" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_HTONL 1
_ACEOF
else
cat >>confdefs.h <<_ACEOF
#define NEED_HTONL 1
_ACEOF
fi
ac_fn_c_check_func "$LINENO" "htons" "ac_cv_func_htons"
if test "x$ac_cv_func_htons" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_HTONS 1
_ACEOF
else
cat >>confdefs.h <<_ACEOF
#define NEED_HTONS 1
_ACEOF
fi
ac_fn_c_check_func "$LINENO" "ntohl" "ac_cv_func_ntohl"
if test "x$ac_cv_func_ntohl" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NTOHL 1
_ACEOF
else
cat >>confdefs.h <<_ACEOF
#define NEED_NTOHL 1
_ACEOF
fi
ac_fn_c_check_func "$LINENO" "ntohs" "ac_cv_func_ntohs"
if test "x$ac_cv_func_ntohs" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NTOHS 1
_ACEOF
else
cat >>confdefs.h <<_ACEOF
#define NEED_NTOHS 1
_ACEOF
fi
ac_fn_c_check_func "$LINENO" "__builtin_bswap16" "ac_cv_func___builtin_bswap16"
if test "x$ac_cv_func___builtin_bswap16" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE___BUILTIN_BSWAP16 1
_ACEOF
else
cat >>confdefs.h <<_ACEOF
#define NEED___BUILTIN_BSWAP16 1
_ACEOF
fi
ac_fn_c_check_func "$LINENO" "__builtin_bswap32" "ac_cv_func___builtin_bswap32"
if test "x$ac_cv_func___builtin_bswap32" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE___BUILTIN_BSWAP32 1
_ACEOF
else
cat >>confdefs.h <<_ACEOF
#define NEED___BUILTIN_BSWAP32 1
_ACEOF
fi
ac_fn_c_check_func "$LINENO" "__builtin_bswap64" "ac_cv_func___builtin_bswap64"
if test "x$ac_cv_func___builtin_bswap64" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE___BUILTIN_BSWAP64 1
_ACEOF
else
cat >>confdefs.h <<_ACEOF
#define NEED___BUILTIN_BSWAP64 1
_ACEOF
fi
 
echo "##########################################################"
echo "# Sorting out MacOSX build parameters #"
......@@ -21476,7 +21575,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by NCO netCDF Operators $as_me 4.7.7, which was
This file was extended by NCO netCDF Operators $as_me 4.7.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -21542,7 +21641,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
NCO netCDF Operators config.status 4.7.7
NCO netCDF Operators config.status 4.7.8
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
 
......
......@@ -54,7 +54,7 @@
# 20170808: Choose between traditional version and Git-based version
# If Git, consider that Linux dynamic libraries will have full messy name, MacOSX will not
# https://stackoverflow.com/questions/43526939/how-to-insert-git-based-version-in-autoconf-managed-project
AC_INIT([NCO netCDF Operators],[4.7.7],[nco-bugs@lists.sourceforge.net],[nco])
AC_INIT([NCO netCDF Operators],[4.7.8],[nco-bugs@lists.sourceforge.net],[nco])
# Print GNU copyright in configure script
AC_COPYRIGHT
......@@ -399,6 +399,7 @@ NCO_CHECK_FUNCS([nearbyint rint round trunc])
NCO_CHECK_FUNCS([nearbyintf rintf roundf truncf])
NCO_CHECK_FUNCS([getopt_long])
NCO_CHECK_FUNCS([strdup strcasecmp strsep strcasestr])
NCO_CHECK_FUNCS([htonl htons ntohl ntohs __builtin_bswap16 __builtin_bswap32 __builtin_bswap64])
echo "##########################################################"
echo "# Sorting out MacOSX build parameters #"
......
......@@ -310,7 +310,7 @@ make install
# Sysadmin upgrade request:
# Latest sysadmin-compiled module usage:
# Personal recipe last modified: 20180912
# Personal recipe last used successfully: 20180912
# Personal recipe last used successfully: 20180925
# NB: aims4 and acme1 only accept connections from whitelisted domains (e.g., uci.edu)
export GNU_TRP=`~/nco/autobld/config.guess`
cd ~/nco;/bin/rm -f *.${GNU_TRP}.foo;make distclean
......@@ -329,7 +329,7 @@ scp nco.configure.${GNU_TRP}.foo nco.config.log.${GNU_TRP}.foo nco.libtool.${GNU
# Sysadmin upgrade request:
# Latest sysadmin-compiled module usage:
# Personal recipe last modified: 2016??
# Personal recipe last used successfully: 20180811
# Personal recipe last used successfully: 20180925
# NB: aims4 and acme1 only accept connections from whitelisted domains (e.g., uci.edu)
export GNU_TRP=`~/nco/autobld/config.guess`
cd ~/nco;/bin/rm -f *.${GNU_TRP}.foo;make distclean
......@@ -349,7 +349,7 @@ scp nco.configure.${GNU_TRP}.foo nco.config.log.${GNU_TRP}.foo nco.libtool.${GNU
# Latest ticket: AREQ0215917 on 20180413
# Latest sysadmin-compiled module usage: soft add +netcdf-4.6.1 soft add +nco-4.7.4 # 20180417
# Personal recipe last modified: 20180729
# Personal recipe last used successfully: 20180811 (up to ncap2 linking with antlr)
# Personal recipe last used successfully: 20180921 (up to ncap2 linking with antlr)
# Fails to link to system-installed udunits...why?
# nm -a /soft/udunits/2.1.21/lib/libudunits2.a | grep ut_read_xml
# soft add +antlr-2.7.7 # 20161223 this ANTLR appears to be stock and not NCO-compatible
......@@ -373,7 +373,7 @@ scp nco.configure.${GNU_TRP}.foo nco.config.log.${GNU_TRP}.foo nco.libtool.${GNU
# Latest ticket: 216373 on 20180413
# Latest sysadmin-compiled module usage: module load netcdf/4.6.1 module load nco/4.7.4 # 20180417
# Personal recipe last modified: 20180427
# Personal recipe last used successfully: 20180811 (getopt errors were eliminated by removing ~/include/getopt*.h)
# Personal recipe last used successfully: 20180921 (getopt errors were eliminated by removing ~/include/getopt*.h)
module purge
module load ncarenv intel ncarcompilers mpt netcdf
module add intel
......@@ -391,7 +391,7 @@ cd ~/nco/bld;make ANTLR_ROOT=${HOME} GSL_ROOT='/glade/u/apps/ch/opt/gsl/2.4/gnu/
# Latest ticket: alcf-support #367012 on 20180413
# Latest sysadmin-compiled module usage: soft add +nco-4.6.8, soft add +netcdf-4.4.1.1
# Personal recipe last modified: 20170825
# Personal recipe last used successfully: 20171221
# Personal recipe last used successfully: 20180921
export GNU_TRP=`~/nco/autobld/config.guess`
cd ~/nco;/bin/rm -f *.${GNU_TRP}.foo;make distclean
cd ~/nco;git reset --hard origin/master
......@@ -408,7 +408,7 @@ scp nco.configure.${GNU_TRP}.foo nco.config.log.${GNU_TRP}.foo nco.libtool.${GNU
# Latest ticket: INC0118469 on 20180413
# Latest sysadmin-compiled module usage: module load nco/4.7.4 # 20180430 (without ncap2)
# Personal recipe last modified: 20180125
# Personal recipe last used successfully: 20180811
# Personal recipe last used successfully: 20180925
module load szip
module load gsl
module load udunits
......@@ -429,7 +429,7 @@ scp nco.configure.${GNU_TRP}.foo nco.config.log.${GNU_TRP}.foo nco.libtool.${GNU
# Latest ticket: INC0118469 on 20180413
# Latest sysadmin-compiled module usage: module load nco/4.7.4 # 20180430 (without ncap2)
# Personal recipe last modified: 20170807
# Personal recipe last used successfully: 20180811 (but must manually link to -L${HOME}/lib_edison to find antlr)
# Personal recipe last used successfully: 20180921 (but must manually link to -L${HOME}/lib_edison to find antlr)
module load szip
module load gsl
module load udunits2
......@@ -464,7 +464,7 @@ scp nco.configure.${GNU_TRP}.foo nco.config.log.${GNU_TRP}.foo nco.libtool.${GNU
# Latest ticket: 381695 on 20180413
# Latest sysadmin-compiled module usage: module load netcdf/4.6.1 nco/4.7.4 # 20180423
# Personal recipe last modified: 20170814
# Personal recipe last used successfully: 20180811
# Personal recipe last used successfully: 20180921
export LINUX_CC='gcc -std=c99 -pedantic -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE'
export LINUX_CXX='g++ -std=c++11'
export LINUX_FC='gfortran'
......@@ -536,7 +536,7 @@ cd ~/nco/bld;make ANTLR_ROOT=${HOME} GSL=N NETCDF_INC='/opt/cray/pe/netcdf/4.6.1
# Latest ticket: 347675 on 20170316, 381695 on 20180413
# Latest sysadmin-compiled module usage: module load nco/4.6.6 # 20170411
# Personal recipe last modified: 20170814
# Personal recipe last used successfully: 20180811 (except ncap2 error with antlr link)
# Personal recipe last used successfully: 20180921 (except ncap2 error with antlr link)
export LINUX_CC='gcc -std=c99 -pedantic -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE'
module add gcc # change GCC from v 4.3.4 to 4.9.0
#module add gsl # not used yet
......
......@@ -498,6 +498,18 @@ netcdf in_grp {
uint uint_arr(lat);
uint_arr:long_name = "uint-type array variable";
uint uint32_var;
uint32_var:purpose = "uint32 with big-endian value 0x12345678 = 2018915346 so that byte-swapped (little-endian) value is 0x78563412";
uint uint32_var_bs;
uint32_var_bs:purpose = "uint32 with big-endian value 0x78563412 = fxm so that byte-swapped (little-endian) value is 0x12345678";
uint64 uint64_tst;
uint64_tst:long_name = "uint64 with big-endian value 0x12345678 = 2018915346 so that byte-swapped (little-endian) value is 0x78563412";
uint uint64_tst_bs;
uint64_tst_bs:purpose = "uint64 with big-endian value 0x78563412 = fxm so that byte-swapped (little-endian) value is 0x12345678";
uint64 uint64_var;
uint64_var:long_name = "uint64-type variable";
......@@ -524,6 +536,10 @@ netcdf in_grp {
// uint_var=4294967295; // UINT_MAX = 4294967295, NC_FILL_UINT is 4294967295U
uint_var=0; // UINT_MAX = 4294967295, NC_FILL_UINT is 4294967295U
uint_arr=4294967295,4294967295; // UINT_MAX = 4294967295, NC_FILL_UINT is 4294967295U
uint32_var=0x12345678; // netCDF assumes hexadecimal input is Big-endian, could be stored as little-endian with byte-swapped value = 0x78563412
uint32_var_bs=0x78563412; // netCDF assumes hexadecimal input is Big-endian, could be stored as little-endian with byte-swapped value = 0x12345678
uint64_tst=0x12345678; // netCDF assumes hexadecimal input is Big-endian, could be stored as little-endian with byte-swapped value = 0x78563412
uint64_tst_bs=0x78563412; // netCDF assumes hexadecimal input is Big-endian, could be stored as little-endian with byte-swapped value = 0x12345678
// uint64_var=18446744073709551615; // ULLONG_MAX = 18446744073709551615, NC_FILL_UINT is 18446744073709551614ULL, 20131120: XML treats unsigned as signed types, so toolsui produces errors when reading maximum uint64 values (though not when reading maxium ubyte, ushort, and uint values)
uint64_var = 0ul; // 20130712: ncgen 4.3.0 chokes on ull, ULL suffix for uint64 attributes,
ushort_var=65535; // USHRT_MAX = 65535, NC_FILL_USHORT = 65535
......
......@@ -37,8 +37,8 @@
# E3SM/ACME Climatology Requirements: https://acme-climate.atlassian.net/wiki/display/ATM/Climo+Files+-+v0.3+AMIP+runs
# Insta-install:
# scp ~/nco/data/ncremap zender1@acme1.llnl.gov:bin
# scp ~/nco/data/ncremap zender1@aims4.llnl.gov:bin
# scp ~/nco/data/ncclimo zender1@acme1.llnl.gov:bin
# scp ~/nco/data/ncclimo zender1@aims4.llnl.gov:bin
# scp ~/nco/data/ncclimo blues.lcrc.anl.gov:bin
# scp ~/nco/data/ncclimo cheyenne.ucar.edu:bin
# scp ~/nco/data/ncclimo cooley.alcf.anl.gov:bin
......@@ -434,9 +434,11 @@ clm_flg='Yes' # [sng] Generate climatology
clm_md='mth' # [sng] Climatology mode ('ann', 'dly', or 'mth')
csn_flg='No' # [flg] Trigger season-processing code
csn_lst='mam,jja,son,djf' # [sng] Seasons to output (subset of mam,jja,son,djf,jfm,amj,jas,ond,fm,on)
d2f_flg='No' # [flg] Convert double-precision fields to single-precision
d2f_opt='--d2f' # [sng] Option string to convert double-precision fields to single-precision
dbg_lvl=0 # [nbr] Debugging level
dec_md='scd' # [sng] December mode ('scd' or 'sdd' as per above)
dfl_lvl=0 # [enm] Deflate level
dfl_lvl='' # [enm] Deflate level
drc_in='' # [sng] Input file directory
drc_in_xmp="${DATA}/ne30/raw" # [sng] Input file directory for examples
drc_in_mps="${DATA}/mpas/raw" # [sng] Input file directory for MPAS examples
......@@ -463,6 +465,7 @@ inp_std='No' # [sng] Input file list from stdin
job_nbr=2 # [nbr] Job simultaneity for parallelism
lnk_flg='Yes' # [sng] Link E3SM/ACME-climo to AMWG-climo filenames
mdl_nm='cam' # [sng] Model name (e.g., 'cam', 'cam2', 'cice', 'cism', 'clm', 'clm2', 'ice', 'mpascice', 'mpasseaice', 'mpassi', 'mpaso', 'ocn')
mdl_nm_usr='' # [sng] Model name (e.g., 'cam', 'cam2', 'cice', 'cism', 'clm', 'clm2', 'ice', 'mpascice', 'mpasseaice', 'mpassi', 'mpaso', 'ocn')
mdl_typ='cesm' # [sng] Model type ('cesm', 'mpas') (for regridding)
mpi_flg='No' # [sng] Parallelize over nodes
nco_opt='--no_tmp_fl' # [sng] NCO options (e.g., '-7 -D 1 -L 1')
......@@ -505,6 +508,7 @@ function fnc_usg_prn { # NB: dash supports fnc_nm (){} syntax, not function fnc_
echo "${fnt_rvr}-C${fnt_nrm} ${fnt_bld}clm_md${fnt_nrm} Climatology mode (default ${fnt_bld}${clm_md}${fnt_nrm}) [${fnt_tlc}clm_md, climatology_mode, climo_mode${fnt_nrm}]"
echo "${fnt_rvr}-c${fnt_nrm} ${fnt_bld}caseid${fnt_nrm} Case ID string (default ${fnt_bld}${caseid}${fnt_nrm}) [${fnt_tlc}caseid, case_id, case${fnt_nrm}]"
echo "${fnt_rvr}-d${fnt_nrm} ${fnt_bld}dbg_lvl${fnt_nrm} Debug level (default ${fnt_bld}${dbg_lvl}${fnt_nrm}) [${fnt_tlc}dbg_lvl, dbg, debug, debug_level${fnt_nrm}]"
echo " ${fnt_bld}--d2f${fnt_nrm} Convert double-precision fields to single-precision (default ${fnt_bld}${d2f_flg}${fnt_nrm}) [${fnt_tlc}d2f | d2s | dbl_flt | dbl_sgl | double_float${fnt_nrm}]"
echo "${fnt_rvr}-E${fnt_nrm} ${fnt_bld}yr_end${fnt_nrm} End year previous climo (empty means none) (default ${fnt_bld}${yr_end_prv}${fnt_nrm}) [${fnt_tlc}yr_end_prv, prv_yr_end, previous_end${fnt_nrm}]"
echo "${fnt_rvr}-e${fnt_nrm} ${fnt_bld}yr_end${fnt_nrm} End year (default ${fnt_bld}${yr_end}${fnt_nrm}) [${fnt_tlc}yr_end, end_yr, year_end, end_year, end${fnt_nrm}]"
echo "${fnt_rvr}-f${fnt_nrm} ${fnt_bld}fml_nm${fnt_nrm} Family name (nickname) (empty means none) (default ${fnt_bld}${fml_nm}${fnt_nrm}) [${fnt_tlc}fml_nm, family_name${fnt_nrm}]"
......@@ -623,7 +627,7 @@ while getopts :34567a:C:c:d:E:e:f:h:i:j:L:l:m:n:O:o:p:R:r:S:s:t:v:X:x:Y:y:-: OPT
j) job_usr="${OPTARG}" ;; # Job simultaneity
L) dfl_lvl="${OPTARG}" ;; # Deflate level
l) lnk_flg="${OPTARG}" ;; # Link E3SM/ACME to AMWG name
m) mdl_nm="${OPTARG}" ;; # Model name
m) mdl_nm_usr="${OPTARG}" ;; # Model name
n) nco_opt="${OPTARG}" ;; # NCO options
o) drc_out_usr="${OPTARG}" ;; # Output directory
O) drc_rgr_usr="${OPTARG}" ;; # Regridded directory
......@@ -648,6 +652,8 @@ while getopts :34567a:C:c:d:E:e:f:h:i:j:L:l:m:n:O:o:p:R:r:S:s:t:v:X:x:Y:y:-: OPT
dec_md=?* | december_mode=?* | dec_mode=?* ) dec_md="${LONG_OPTARG}" ;; # -a # December mode
clm_md=?* | climatology_mode=?* | climo_mode=?* ) clm_md_usr="${LONG_OPTARG}" ;; # -C # Climatology mode
caseid=?* | case_id=?* | case=?* ) caseid="${LONG_OPTARG}" ;; # -c # CASEID
d2f | d2s | dbl_flt | dbl_sgl | double_float ) d2f_flg='Yes' ;; # # Convert double-precision fields to single-precision
d2f=?* | d2s=?* | dbl_flt=?* | dbl_sgl=?* | double_float=?* ) echo "No argument allowed for --${OPTARG switch}" >&2; exit 1 ;; # # D2F
dbg_lvl=?* | dbg=?* | debug=?* | debug_level=?* ) dbg_lvl="${LONG_OPTARG}" ;; # -d # Debugging level
dfl_lvl=?* | deflate=?* | dfl=?* ) dfl_lvl="${LONG_OPTARG}" ;; # -L # Deflate level
yr_end_prv=?* | prv_yr_end=?* | previous_end=?* ) yr_end_prv="${LONG_OPTARG}" ;; # -E # End year previous
......@@ -659,7 +665,7 @@ while getopts :34567a:C:c:d:E:e:f:h:i:j:L:l:m:n:O:o:p:R:r:S:s:t:v:X:x:Y:y:-: OPT
job_nbr=?* | job_number=?* | jobs=?* ) job_usr="${LONG_OPTARG}" ;; # -j # Job simultaneity
lnk_flg | link_flag | no_amwg_link | no_amwg_links | no_AMWG_link | no_AMWG_links ) lnk_flg='No' ;; # -l # Link E3SM/ACME to AMWG name
lnk_flg=?* | link_flag=?* | no_amwg_link=?* | no_amwg_links=?* | no_AMWG_link=?* | no_AMWG_links=?* ) echo "No argument allowed for --${OPTARG switch}" >&2; exit 1 ;; # -l # Link E3SM/ACME to AMWG name
mdl_nm=?* | model_name=?* | model=?* ) mdl_nm="${LONG_OPTARG}" ;; # -m # Model name
mdl_nm=?* | model_name=?* | model=?* ) mdl_nm_usr="${LONG_OPTARG}" ;; # -m # Model name
nco_opt=?* | nco=?* | nco_options=?* ) nco_opt="${LONG_OPTARG}" ;; # -n # NCO options
no_area | no_cll_msr | no_cell_measures ) no_cll_msr='Yes' ;; # # Omit cell_measures variables
no_area=?* | no_cell_msr=?* | no_cell_measures=?* ) echo "No argument allowed for --${OPTARG switch}" >&2; exit 1 ;; # # Omit cell_measures variables
......@@ -702,6 +708,10 @@ psn_nbr=$#
if [ ${psn_nbr} -ge 1 ]; then
inp_psn='Yes'
fi # !psn_nbr
if [ "${d2f_flg}" != 'Yes' ]; then
d2f_opt=''
fi # !d2f_flg
if [ ${vrs_prn} = 'Yes' ]; then
printf "${spt_nm}, the NCO climatology operator, version ${nco_vrs}\n"
printf "Copyright (C) 2016--2018 Charlie Zender\n"
......@@ -787,6 +797,10 @@ if [ -n "${yr_srt_prv}" ]; then
ncr_flg='Yes'
fi # !yr_end_prv binary method
fi # !yr_srt_prv extended climo
# Utilize user-specified model name, if any
if [ -n "${mdl_nm_usr}" ]; then
mdl_nm="${mdl_nm_usr}"
fi # !mdl_nm_usr
if [ -n "${clm_md_usr}" ]; then
# Climo mode must be explicitly selected with --clm_md when climo input files are piped or positional
if [ "${clm_md_usr}" = 'daily' ] || [ "${clm_md_usr}" = 'doy' ] || [ "${clm_md_usr}" = 'day' ] ; then
......@@ -803,7 +817,9 @@ else
sbs_flg='Yes'
clm_flg='No'
dec_md='sdd'
if [ -z "${mdl_nm_usr}" ]; then
mdl_nm='nil' # Unset model name for stdin pipe and positional arguments, otherwise default mdl_nm could be used to add model-specific variables to var_lst_xtn
fi # !mdl_nm_usr
fi # !stdin || !psn
if [ -n "${ypf_max_usr}" ]; then
# fxm: Must specify --ypf to turn-on splitter mode when input files are specified by -i drc_in
......@@ -812,7 +828,9 @@ else
sbs_flg='Yes'
clm_flg='No'
dec_md='sdd'
mdl_nm='nil'
if [ -z "${mdl_nm_usr}" ]; then
mdl_nm='nil' # Unset model name for stdin pipe and positional arguments, otherwise default mdl_nm could be used to add model-specific variables to var_lst_xtn
fi # !mdl_nm_usr
fi # !ypf_max
fi # !clm_md_usr
......@@ -867,7 +885,7 @@ let yr_nbr=${yr_end_rth}-${yr_srt_rth}+1
# Derived variables
out_nm=${caseid}
if [ "${caseid}" = 'hist' ] || [ "${mdl_nm}" = 'mpaso' ] || [ "${mdl_nm}" = 'mpascice' ] || [ "${mdl_nm}" = 'mpasseaice' ] || [ "${mdl_nm}" = 'mpassi' ]; then
if [ "${caseid}" = 'hist' ] || [ "${mdl_nm}" = 'mpas' ] || [ "${mdl_nm}" = 'mpaso' ] || [ "${mdl_nm}" = 'mpascice' ] || [ "${mdl_nm}" = 'mpasseaice' ] || [ "${mdl_nm}" = 'mpassi' ]; then
mdl_typ='mpas'
nm_typ='mpas'
fi # !caseid
......@@ -1405,6 +1423,8 @@ if [ ${dbg_lvl} -ge 2 ]; then
printf "dbg: clm_nbr = ${clm_nbr}\n"
printf "dbg: csn_lst = ${csn_lst}\n"
printf "dbg: csn_nbr = ${csn_nbr}\n"
printf "dbg: d2f_flg = ${d2f_flg}\n"
printf "dbg: d2f_opt = ${d2f_opt}\n"
printf "dbg: dec_md = ${dec_md}\n"
printf "dbg: dbg_lvl = ${dbg_lvl}\n"
printf "dbg: dfl_lvl = ${dfl_lvl}\n"
......@@ -1870,7 +1890,9 @@ if [ "${sbs_flg}" = 'Yes' ]; then
fl_rgr[${var_idx}]="${fl_rgr_tpl[${sgm_idx}]/var_nm_tpl/${var_sbs[${var_idx}]}}"
cmd_rgr[${var_idx}]="${cmd_mpi[${var_idx}]} ncks -t ${thr_nbr} -O ${nco_opt} ${rgr_opt} ${spl_opt} ${spl_rgr_opt} ${fl_out[${var_idx}]} ${fl_rgr[${var_idx}]}"
if [ "${mdl_typ}" = 'mpas' ]; then
cmd_rgr[${var_idx}]="${cmd_mpi[${var_idx}]} ncremap -C -u .pid${spt_pid}.split.${var_idx}.tmp -P mpas -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${var_idx}]} -o ${fl_rgr[${var_idx}]}"
# 20181114: Remove '-C' argument from ncremap invocation for MPAS splitter only
# This ensures CMIP6 MPAS timeseries will have _FillValue
cmd_rgr[${var_idx}]="${cmd_mpi[${var_idx}]} ncremap -u .pid${spt_pid}.split.${var_idx}.tmp -P mpas ${d2f_opt} --nco_opt=\"${nco_opt}\" ${spl_opt} ${spl_rgr_opt} -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${var_idx}]} -o ${fl_rgr[${var_idx}]}"
fi # !mdl_typ
if [ ${dbg_lvl} -ge 1 ]; then
echo ${cmd_rgr[${var_idx}]}
......@@ -2142,7 +2164,7 @@ if [ "${clm_flg}" = 'Yes' ] && [ "${clm_md}" = 'dly' ]; then
for ((clm_idx=0;clm_idx<clm_nbr;clm_idx++)); do
cmd_rgr[${clm_idx}]="${cmd_mpi[${clm_idx}]} ncks -t ${thr_nbr} -O ${nco_opt} ${rgr_opt} ${fl_out[${clm_idx}]} ${fl_rgr[${clm_idx}]}"
if [ "${mdl_typ}" = 'mpas' ]; then
cmd_rgr[${clm_idx}]="${cmd_mpi[${clm_idx}]} ncremap -C -u .pid${spt_pid}.split.${clm_idx}.tmp -P mpas -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
cmd_rgr[${clm_idx}]="${cmd_mpi[${clm_idx}]} ncremap -C -u .pid${spt_pid}.split.${clm_idx}.tmp -P mpas ${d2f_opt} --nco_opt=\"${nco_opt}\" -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
fi # !mdl_typ
if [ ${dbg_lvl} -ge 1 ]; then
echo ${cmd_rgr[${clm_idx}]}
......@@ -2264,7 +2286,7 @@ if [ "${clm_flg}" = 'Yes' ] && [ "${clm_md}" = 'mth' ] && [ "${bnr_flg}" = 'No'
fi # !nd
cmd_rgr[${clm_idx}]="${cmd_mpi[${nd_idx}]} ncks -t ${thr_nbr} -O ${nco_opt} ${rgr_opt} ${fl_out[${clm_idx}]} ${fl_rgr[${clm_idx}]}"
if [ "${mdl_typ}" = 'mpas' ]; then
cmd_rgr[${clm_idx}]="${cmd_mpi[${nd_idx}]} ncremap -C -u .pid${spt_pid}.climo.${clm_idx}.tmp -P mpas -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
cmd_rgr[${clm_idx}]="${cmd_mpi[${nd_idx}]} ncremap -C -u .pid${spt_pid}.climo.${clm_idx}.tmp -P mpas ${d2f_opt} --nco_opt=\"${nco_opt}\" -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
fi # !mdl_typ
if [ ${dbg_lvl} -ge 1 ]; then
echo ${cmd_rgr[${clm_idx}]}
......@@ -2373,7 +2395,7 @@ if [ "${clm_flg}" = 'Yes' ] && [ "${clm_md}" = 'mth' ] && [ "${bnr_flg}" = 'No'
fi # !nd
cmd_rgr[${clm_idx}]="${cmd_mpi[${nd_idx}]} ncks -t ${thr_nbr} -O ${nco_opt} ${rgr_opt} ${fl_out[${clm_idx}]} ${fl_rgr[${clm_idx}]}"
if [ "${mdl_typ}" = 'mpas' ]; then
cmd_rgr[${clm_idx}]="${cmd_mpi[${nd_idx}]} ncremap -C -u .pid${spt_pid}.climo.${clm_idx}.tmp -P mpas -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
cmd_rgr[${clm_idx}]="${cmd_mpi[${nd_idx}]} ncremap -C -u .pid${spt_pid}.climo.${clm_idx}.tmp -P mpas ${d2f_opt} --nco_opt=\"${nco_opt}\" -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
fi # !mdl_typ
if [ ${dbg_lvl} -ge 1 ]; then
echo ${cmd_rgr[${clm_idx}]}
......@@ -2459,7 +2481,7 @@ if [ "${clm_flg}" = 'Yes' ] && [ "${clm_md}" = 'mth' ] && [ "${bnr_flg}" = 'No'
[[ ${dbg_lvl} -ge 1 ]] && date_rgr=$(date +"%s")
cmd_rgr[${clm_idx}]="${cmd_mpi[${clm_idx}]} ncks -t ${thr_nbr} -O ${nco_opt} ${rgr_opt} ${fl_out[${clm_idx}]} ${fl_rgr[${clm_idx}]}"
if [ "${mdl_typ}" = 'mpas' ]; then
cmd_rgr[${clm_idx}]="${cmd_mpi[${clm_idx}]} ncremap -C -u .pid${spt_pid}.climo.${clm_idx}.tmp -P mpas -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
cmd_rgr[${clm_idx}]="${cmd_mpi[${clm_idx}]} ncremap -C -u .pid${spt_pid}.climo.${clm_idx}.tmp -P mpas ${d2f_opt} --nco_opt=\"${nco_opt}\" -t ${thr_nbr} -m ${rgr_map} -i ${fl_out[${clm_idx}]} -o ${fl_rgr[${clm_idx}]}"
fi # !mdl_typ
if [ ${dbg_lvl} -ge 1 ]; then
echo ${cmd_rgr[${clm_idx}]}
......
This diff is collapsed.
nco (4.7.8-1) unstable; urgency=medium
* New upstream release.
* Drop patches, included upstream.
-- Bas Couwenberg <sebastic@debian.org> Sat, 17 Nov 2018 07:48:48 +0100
nco (4.7.7-2) unstable; urgency=medium
* Add upstream patch to fix FTBFS with NetCDF 4.6.2-RC1.
......
0001-Convert-log_lvl-to-int-before-passing-to-nc_set_log_.patch
$Header$ -*-text-*-
The netCDF Operators NCO version 4.7.7 have hatched.
The netCDF Operators NCO version 4.7.8 have hatched.
http://nco.sf.net (Homepage, Mailing lists, Help)
http://github.com/nco (Source Code, Issues, Releases, Developers)
What's new? Version 4.7.7 has modest new features everywhere:
Improved forward and backward compatibility with newer and older
versions of ESMF_RegridWeightGen; Generation and inferral of grids
running north->south (à la ECMWF); exact symmetry for Gaussian grid
interfaces; an ncpdq compression map that converts doubles to floats;
production of "skeleton files" for new grids; equivalent treatment of
MPAS and CESM grid variables in arithmetic; and reversion of the
filename whitelist security.
What's new? Version 4.7.8 contains many improvements to help convert
ESM output into CMIP6 timeseries format. In particular, ncclimo
coordinates better with ncremap when processing MPAS data and
regridding. ncpdq has a new feature to convert doubles to floats,
and raw binary output can now be byte-swapped to ease creation of
offline datasets for some models like WRF and CICE.
Work on NCO 5.0.0 has commenced "under the hood". The key leap in that
release will be support for netCDF4 user-defined types. Printing of
......@@ -25,90 +23,42 @@ Charlie
NEW FEATURES (full details always in ChangeLog):
A. ncpdq has a new packing map: dbl_flt
The map converts to double-precision to single-precision,
so it is technically a precision change, not packing.
It is in ncpdq because it reduces space by ~50%, like packing.
Like packing the precision loss is irreversible.
Unlike packing, no attributes are created, modified, or deleted.
ncpdq -M dbl_flt in.nc out.nc
A. ncclimo and ncremap accept the --d2f flag to turn-on the dbl_flt
packing map that converts double-precision to single-precision.
ncclimo --d2f ...
ncremap --d2f ...
http://nco.sf.net/nco.html#dbl_flt
http://nco.sf.net/nco.html#ncpdq
B. Filename sanitization via character whitelists, first introduced in
NCO 4.7.3 to increase security against malicious filenames, has
been turned-off, possibly permanently. Points passionately raised
by a user led us to turn-off this feature until lack of it is shown
to lead to a real-world exploit.
https://github.com/nco/nco/issues/104
http://nco.sf.net/nco.html#wht_lst
C. The CCM/CAM/EAM family of atmospheric models does not output a
"bounds" variable or attribute corresponding to its "lev"
coordinate. This prevents NCO from activating some desirable CF
machinery. To workaround this, NCO now outputs the ilev coordinate
(and hyai, hybi) whenever the lev coordinate is also output.
ncks -v T in.nc out.nc
http://nco.sf.net/nco.html#bnd
D. Equivalent treatment of MPAS and CESM grid variables.
NCO does not arithmetically alter grid-related variables.
Who wants to subtract latitude coordinates from eachother?
Previously it only skipped arithmetic on CESM'ish grid variables.
Now NCO has an extensive (pun intended!) list of MPAS and other
grid variables that it will not subtract. For the most part,
ncremap will not regrid these variables either.
http://nco.sf.net/nco.html#cnv_CCSM
http://nco.sf.net/nco.html#cnv_MPAS
B. ncremap adds missing values to single-precision MPAS variables as
well as double. Previously it only added _FillValue to doubles.
http://nco.sf.net/nco.html#ncremap
E. I greatly expanded the field manual to regridding with ncremap.
The documentation is currently available to E3SM users at
https://acme-climate.atlassian.net/wiki/spaces/SIM/pages/754286611/Regridding+E3SM+Data+with+ncremap
and to others via email request (it will be in Users Guide soon).
F. ncremap adds --ignore_degenerate to default ESMF_RegridWeightGen
(ERWG) options when ERWG version >= 7.0. This is done to preserve
backwards compatibility since ERWG 7.1.0r and later require
--ignore_degenerate to successfully regrid some datasets (e.g.,
CICE) that previous ERWG versions handle fine.
ncremap -m map.nc in.nc out.nc
http://nco.sf.net/nco.html#wgt_opt
G. Not only do the British drive on the wrong side of the road, they
prefer North-to-South (n2s) grids over South-to-North (s2n) grids.
NCO now implements a latitude direction keyword lat_drc.
Grid generation implements n2s ordering via --rgr lat_drc=n2s.
Grid diagnosis now recognizes n2s ordering for all rectangular grids.
http://nco.sf.net/nco.html#lat_drc
H. ncremap now generates exactly symmetric interface latitudes for
Gaussian grids. To our knowledge only NCO generates accurate
Gaussian interfaces (via a Newton-Raphson iteration of boundaries
to enclose the area indicated by the Gaussian weight). However,
previously the interface latitudes could accumulate rounding errors
during Newton-Raphson iteration differ between the hemispheres by
~1.0e-14. Now symmetry properties are used to ensure exact symmetry.
http://nco.sf.net/nco.html#gss
I. ncremap now produces a "skeleton file" of grids it generates
when requested with --skl_fl.
ncremap -G latlon=2560,5136#lat_typ=gss#lon_typ=grn_ctr#lat_drc=n2s -g grd_ecmwf.nc --skl=skl_ecmwf.nc
http://nco.sf.net/nco.html#skl_fl
http://nco.sf.net/nco.html#skeleton
C. NCO takes advantage of faster stride access in netCDF 4.6.2.
Previously NCO used its own workaround to accelerate strides.
It will continue to do so with older version of netCDF.
D. ncremap improves metadata annotation for Tempest monotr maps.
E. ncks provides the --bsa flag to invoke a byte-swap algorithm.
Setting this option causes unformatted binary output (with --bnr)
to be output in byte-swapped order relative to the host machine:
ncks -O -v uint32_var.? --bsa=1 -b foo.bnr in_grp.nc foo.nc
http://nco.sf.net/nco.html#bnr
BUG FIXES:
A. ncks -r could incorrectly report that CDF5 was enabled.
This occurred when linked to netCDF 4.5.x-4.6.1.
A. ncatted would exit when the -t option yielded no matches.
This has been fixed.
B. ncremap previously broke on weight files that lacked a num_wgts
dimension, even if that dimension was unused (orphaned).
Dependence on num_wgts has been eliminated and fixes this.
This also enables compressed maps to work correctly.
B. NCO could fail to build with netCDF 4.6.2 snapshots due to a
new way of handling the log_lvl option.
This has been fixed.
C. Fixed a bug in the convergence test to detect Gaussian grids
C ncremap could fail to execute ERWG commands when started in
a directory in which it had no write access. Now ncremap
invokes ERWG with --no_log to prevent ERWG write attempts
to a (possibly write-protected) working directory.
Full release statement at http://nco.sf.net/ANNOUNCE
......@@ -116,8 +66,8 @@ KNOWN PROBLEMS DUE TO NCO:
This section of ANNOUNCE reports and reminds users of the
existence and severity of known, not yet fixed, problems.
These problems occur with NCO 4.7.7 built/tested under
MacOS 10.13.6 with netCDF 4.6.1 on HDF5 1.10.2 and with
These problems occur with NCO 4.7.8 built/tested under
MacOS 10.14.1 with netCDF 4.6.1 on HDF5 1.10.2 and with
Linux with netCDF 4.6.2-development (20180515) on HDF5 1.8.19.
A. NOT YET FIXED (NCO problem)
......
2018-11-16 Charlie Zender <zender@uci.edu>
* NCO 4.7.8 release procedure:
cd ~/nco;git commit -a -m 'Version 4.7.8: Paradise Lost';git push
git tag -a 4.7.8 -m 'ncremap/ncclimo CMIP6 features, d2f, no frac_b, deprecate USE_NC4_SRD_WORKAROUND; ERWG no_log; ncks byte-swap; ncatted typ_mch fix';git push --tags
* ncremap annotate map-file after cmd_trn for monotr transpose maps
NB: GenerateTransposeMap does not propagate metadata from input map
2018-11-15 Charlie Zender <zender@uci.edu>
* ncremap add ${unq_sfx} to ${d2f_fl}
2018-11-14 Charlie Zender <zender@uci.edu>
* NCO 4.7.8-beta01 release procedure:
cd ~/nco;git commit -a -m 'Version 4.7.8-beta01: Paradise Lost';git push
git tag -a 4.7.8-beta01 -m 'ncclimo mdl_nm=mpas, pass ${nco_opt}, ${spl_opt}, ${spl_rgr_opt} not -C, pass; ncremap explicit -O, ERWG --no_log, ntl dfl nil not 0';git push --tags
* ncclimo add ${spl_opt} and ${spl_rgr_opt} to MPAS ncremap call
* ncremap/ncclimo initialize dfl_lvl to '' not '0'
* ncremap --no_log to prevent ERWG write attempts to (possibly write-protected) working directory
* ncclimo pass ${nco_opt} through to ncremap so, e.g., --no_tmp_fl -7 --dfl_lvl=2
* ncremap move -O outside of ${nco_opt} and make it explicit in all commands
Reduces chances that overriding ncremap default nco_opt with nco_opt from ncclimo causes disaster
* ncclimo remove '-C' argument from ncremap invocation for MPAS splitter only
This ensures CMIP6 MPAS timeseries will have _FillValue
* ncclimo add 'mpas' as valid model name mdl_nm (it was already a valid mdl_typ)
* NCO 4.7.8-alpha04 release procedure:
cd ~/nco;git commit -a -m 'Version 4.7.8-alpha04: Potomac';git push
git tag -a 4.7.8-alpha04 -m 'CMIP6 tweaks: no frac_b, ncclimo --d2f';git push --tags
2018-11-08 Charlie Zender <zender@uci.edu>
* Implement --d2f in ncclimo to pass to ncremap
2018-11-04 Charlie Zender <zender@uci.edu>
* Use htonl(), htons() instead of __builtin_bswap??() when unavailable
* Add frac_b exceedance diagnostic to stdout but remove frac_b from netCDF output (for CMIP6)
2018-10-30 Charlie Zender <zender@uci.edu>
* NCO 4.7.8-alpha03 release procedure:
cd ~/nco;git commit -a -m 'Version 4.7.8-alpha03: Tony\'nDonna';git push
git tag -a 4.7.8-alpha03 -m 'ncremap --d2f;ncks byte-swap ordering option;ncbo conformity clarity';git push --tags
* Add variable uint32_var to in_grp.nc and successfully test byte-swapping
* Fix c_typ_nm() to return correct C-language type of netCDF type based on nco_typ.h tokens
* Clarify dimension ordering issue when ncbo's variable conformity checks fail
2018-10-24 Charlie Zender <zender@uci.edu>
* Finish byte-swap function. Still need front-end option invocation mechanism.
2018-10-23 Charlie Zender <zender@uci.edu>
* Add byte-swap option infrastructure
* Successfully built/tested on GCC 8.2 on MacOS 10.14
2018-10-11 Charlie Zender <zender@uci.edu>
* Fix typo so we have NCO_GSL_VERSION >= 110 in fmc_gsl_cls.cc
2018-10-06 Charlie Zender <zender@uci.edu>
* Pedro Vicente corrected a WIN64 size_t issue by replacing “long” with “size_t” in nco_lmt_evl_dmn_crd()
2018-09-27 Charlie Zender <zender@uci.edu>
* Add --d2f option to ncremap to convert double-precision to single-precision
2018-09-25 Charlie Zender <zender@uci.edu>
* NCO 4.7.8-alpha02 release procedure:
cd ~/nco;git commit -a -m 'Version 4.7.8-alpha02: Imua MVB';git push
git tag -a 4.7.8-alpha02 -m 'Deprecate USE_NC4_SRD_WORKAROUND for netCDF >= 4.6.2;Add nc_*_memio() functions; Fix nc_set_log_level(); ncatted allow --typ_mch searches to fail; ncremap add mss_val to NC_FLOAT';git push --tags
* ncremap add missing values to single-precision MPAS variables as well as double
* ncatted do not return error when -t specified and no matching variables found
2018-09-23 Charlie Zender <zender@uci.edu>
* Define NC_LIB_VERSION prior to using in #include <netcdf_mem.h>
* Add nco_create_memio(), nco_open_memio(), nco_close_memio() and their stubs
2018-09-21 Charlie Zender <zender@uci.edu>
 
* Allow USE_NC4_SRD_WORKAROUND only for netCDF <= 4.6.1 since 4.6.2 fixes issue https://github.com/Unidata/netcdf-c/pull/1001
* Convert log_lvl to int before passing to nc_set_log_level() to fix breakage with netCDF 4.6.2-RC1
* NCO 4.7.8-alpha01 release procedure:
cd ~/nco;git commit -a -m 'Version 4.7.8-alpha01: Nitrous';git push
git tag -a 4.7.8-alpha01 -m 'Functionally identical to 4.7.7;';git push --tags
* NCO 4.7.7 release procedure:
cd ~/nco;git commit -a -m 'Version 4.7.7: Bravura';git push
git tag -a 4.7.7 -m 'theta;ilev;doc dap dep wht_lst;ignore_degenerate;rgr n2s, doc, gss sym ntf;ncpdq dbl_flt;ncremap skl_fl cnv_mpas';git push --tags
......@@ -214,7 +321,7 @@
 
* Use HPSS_TRY to create better hints for finding missing files
 
* Fix ncap2 build on aerosol/firn: discard MacPorts antlr, build antlr from scratch, eliminate getopt.h getopt_bds.h from ~/include (to fix undefined references to _my_getopt, _my_optind, etc.)
* Fix ncap2 build on aerosol/firn: discard MacPorts antlr, build antlr from scratch, eliminate getopt.h getopt_bsd.h from ~/include (to fix undefined references to _my_getopt, _my_optind, etc.)
 
2018-07-28 Charlie Zender <zender@aerosol>
 
......
......@@ -29,18 +29,18 @@ apt-get install dh-make debhelper devscripts fakeroot gnupg debian-policy develo
2. Debian build procedure recommends placing entire package source in
subdirectory of main package.
For starters, we wish to create .debs of tagged releases, e.g., nco-4.7.7
First we create a clean source distribution of nco and place it in nco-4.7.7
For starters, we wish to create .debs of tagged releases, e.g., nco-4.7.8
First we create a clean source distribution of nco and place it in nco-4.7.8
Until we know what is necessary, however, we just copy a snapshot
2.1 Clean all build files from development directory
cd ~/nco;make distclean;cd bld;make clean;cd ~
tar cvzf ./nco/nco.tar.gz ./nco/*
cd ~/nco;tar xvzf nco.tar.gz;mv nco nco-4.7.7
/bin/rm nco.tar.gz;tar cvzf nco-4.7.7.tar.gz ./nco-4.7.7/*
cd ~/nco/nco-4.7.7
dh_make -e zender@uci.edu -f ../nco-4.7.7.tar.gz
cd ~/nco;tar xvzf nco.tar.gz;mv nco nco-4.7.8
/bin/rm nco.tar.gz;tar cvzf nco-4.7.8.tar.gz ./nco-4.7.8/*
cd ~/nco/nco-4.7.8
dh_make -e zender@uci.edu -f ../nco-4.7.8.tar.gz
2.2 The preceding steps created template debian files for a .deb,
Those files now reside in ~/nco/debian.
......@@ -55,7 +55,7 @@ dh_make -e zender@uci.edu -f ../nco-4.7.7.tar.gz
from previous build
cd ~/nco;/bin/rm *.gz
cd ~/nco/nco-4.7.7
cd ~/nco/nco-4.7.8
dpkg-buildpackage -rfakeroot > foo 2>&1
dpkg-buildpackage -rsudo > foo 2>&1
......@@ -84,33 +84,33 @@ patch -p0 < nco_X.Y.Z-3.diff # Patch destination with Debian diff
make tags
# Put cute version-specific string in nco_ctl.c:nco_nmn_get()
# Install correct version numbers before updating Debian
# tags-query replace 4.7.7 with X.Y.Z+1
# tags-query replace 4.7.8 with X.Y.Z+1
# If tags-query replace does not work, be sure to manually change
# versions in configure.ac, debian/files, doc/ANNOUNCE, doc/debian.txt,
# doc/index.shtml, doc/nco.texi, bld/nco_dst.pl, doc/VERSION
# 20141201: Change NCO_VERSION_PATCH in src/nco.h!!!!!!!!!!!!!!!!!!!!!!
cd ~/nco/debian;dch -b --force-distribution --distribution=unstable -v 4.7.7-1 # Update changelog (-b forces this version number)
cd ~/nco/debian;dch -b --force-distribution --distribution=unstable -v 4.7.8-1 # Update changelog (-b forces this version number)
emacs ~/nco/bld/nco.spec # Update changelog
# For unknown reason rules file may lose its executable bit
chmod a+x ~/nco/debian/rules
# Rebuild autotools so new version # propagates
cd ~/nco;aclocal;autoheader;automake --foreign;autoconf
# Save all files in emacs before tagging
${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln nco-4.7.7
${HOME}/nco/bld/nco_dst.pl --dbg=2 --bld --cln nco-4.7.8
# Upload tarball to SF https://sourceforge.net/projects/nco/files
cd;scp dust.ess.uci.edu:/var/www/html/nco/src/nco-4.7.7.tar.gz .
cd;scp dust.ess.uci.edu:/var/www/html/nco/src/nco-4.7.8.tar.gz .
7. Ubuntu PPA
https://help.launchpad.net/Packaging/PPA
dput NCO nco_4.7.7-2~ppa1_source.changes
dput NCO nco_4.7.8-2~ppa1_source.changes
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com
# Location of build diagnostics for mentors to help
http://dust.ess.uci.edu/nco/src/nco_4.7.7-1.dpkg-buildpackage.txt
http://dust.ess.uci.edu/nco/src/nco_4.7.7-1.dsc
http://dust.ess.uci.edu/nco/src/nco_4.7.7-1_i386.changes
http://dust.ess.uci.edu/nco/src/nco_4.7.7-1_i386.deb
http://dust.ess.uci.edu/nco/src/nco_4.7.7.orig.tar.gz
http://dust.ess.uci.edu/nco/src/nco_4.7.8-1.dpkg-buildpackage.txt
http://dust.ess.uci.edu/nco/src/nco_4.7.8-1.dsc
http://dust.ess.uci.edu/nco/src/nco_4.7.8-1_i386.changes
http://dust.ess.uci.edu/nco/src/nco_4.7.8-1_i386.deb
http://dust.ess.uci.edu/nco/src/nco_4.7.8.orig.tar.gz
# Becoming a Debian developer
http://www.debian.org/devel/join/newmaint
......@@ -164,31 +164,31 @@ Matej Vela <vela@debian.org>, Daniel Baumann <daniel@debian.org>, Warren Turkal
# export LD_LIBRARY_PATH=/usr/lib:/lib:/usr/X11R6/lib
# sudo aptitude install antlr bison flex gsl-bin libgsl0-dev libantlr-dev netcdf-bin libnetcdfc7 libnetcdf-dev texinfo libcurl4-gnutls-dev libexpat1-dev libxml2-dev udunits-bin libudunits2-0 libudunits2-dev
cd ~/nco;cvc
sudo /bin/rm -rf ${DATA}/nco-4.7.7 ${DATA}/nco_4.7.7* ${DATA}/debian # Cleanup last build. sudo necessary for removal because dpkg-buildpackage uses sudo?
# cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -r nco-4.7.7-1 -d nco-4.7.7 nco # Export based on tag
cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -D "1 second ago" -d nco-4.7.7 nco # Export most recent
tar cvzf ./nco_4.7.7.orig.tar.gz --exclude='nco-4.7.7/debian*' --exclude='.cvsignore' --exclude='ncap_lex.c' --exclude='ncap_yacc.[ch]' ./nco-4.7.7
/bin/rm -rf ${DATA}/nco-4.7.7 # Remove cvs-exported directory
tar xvzf ./nco_4.7.7.orig.tar.gz # Untar to get directory without excluded files
mkdir -p ${DATA}/nco-4.7.7/debian/source;cd ~/nco/debian;/bin/cp changelog compat control convert copyright doc-base files info rules ${DATA}/nco-4.7.7/debian;cd ~/nco/debian/source;/bin/cp format ${DATA}/nco-4.7.7/debian/source # Replace debian directory with _CURRENT_ (main trunk) settings
sudo /bin/rm -rf ${DATA}/nco-4.7.8 ${DATA}/nco_4.7.8* ${DATA}/debian # Cleanup last build. sudo necessary for removal because dpkg-buildpackage uses sudo?
# cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -r nco-4.7.8-1 -d nco-4.7.8 nco # Export based on tag
cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -D "1 second ago" -d nco-4.7.8 nco # Export most recent
tar cvzf ./nco_4.7.8.orig.tar.gz --exclude='nco-4.7.8/debian*' --exclude='.cvsignore' --exclude='ncap_lex.c' --exclude='ncap_yacc.[ch]' ./nco-4.7.8
/bin/rm -rf ${DATA}/nco-4.7.8 # Remove cvs-exported directory
tar xvzf ./nco_4.7.8.orig.tar.gz # Untar to get directory without excluded files
mkdir -p ${DATA}/nco-4.7.8/debian/source;cd ~/nco/debian;/bin/cp changelog compat control convert copyright doc-base files info rules ${DATA}/nco-4.7.8/debian;cd ~/nco/debian/source;/bin/cp format ${DATA}/nco-4.7.8/debian/source # Replace debian directory with _CURRENT_ (main trunk) settings
#export DEB_BUILD_OPTIONS='disable-dap-netcdf disable-netcdf4 disable-udunits2'; # Disable optional packages based on available Debian support
#cd ${DATA}/nco-4.7.7;dpkg-buildpackage -rsudo -uc -us > ~/foo.nco 2>&1 # -uc -us: Do not sign changes or source files
#cd ${DATA}/nco-4.7.7;dpkg-buildpackage -rsudo -sa > ~/foo.nco 2>&1 # -sa: Include _orig.tar.gz in .changes
cd ${DATA}/nco-4.7.7;dpkg-buildpackage -rsudo > ~/foo.nco 2>&1
#cd ${DATA}/nco-4.7.8;dpkg-buildpackage -rsudo -uc -us > ~/foo.nco 2>&1 # -uc -us: Do not sign changes or source files
#cd ${DATA}/nco-4.7.8;dpkg-buildpackage -rsudo -sa > ~/foo.nco 2>&1 # -sa: Include _orig.tar.gz in .changes
cd ${DATA}/nco-4.7.8;dpkg-buildpackage -rsudo > ~/foo.nco 2>&1
sudo dpkg --remove nco
sudo dpkg --install ${DATA}/nco_4.7.7-1_*.deb
sudo dpkg --install ${DATA}/nco_4.7.8-1_*.deb
cd ~/nco/bld;MY_BIN_DIR=/usr/bin ../bm/nco_bm.pl --regress
# http://lintian.debian.org/full/zender@uci.edu.html
lintian ${DATA}/nco_4.7.7-1_*.deb
ls -l ${DATA}/nco_4.7.7*
lintian ${DATA}/nco_4.7.8-1_*.deb
ls -l ${DATA}/nco_4.7.8*
m ~/foo.nco
# Upload Ubuntu (rather than Debian) packages to websites
scp ${DATA}/nco_4.7.7* dust.ess.uci.edu:/var/www/html/nco/src
scp ${DATA}/nco_4.7.7* zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
scp ${DATA}/nco_4.7.8* dust.ess.uci.edu:/var/www/html/nco/src
scp ${DATA}/nco_4.7.8* zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
# NB: Make sure RPMs build before uploading to debian, since changing
# Debian versions is a PITA
# NB: Only upload pbuilder Debian Sid (not personal Ubuntu) .deb builds to Debian mentors
# cd ${DATA};dupload -t mentors nco_4.7.7-1_*.changes
# cd ${DATA};dupload -t mentors nco_4.7.8-1_*.changes
bsrc # Reset shell environment for regular development
# New build system #2
......@@ -202,52 +202,52 @@ DIST=sid sudo pbuilder update # Update chroot before building package in it
# dget http://ftp.debian.org/debian/pool/main/n/nco/nco_3.9.0-1.dsc
# dget http://ftp.debian.org/debian/pool/main/n/netcdf/netcdf_3.6.1-1.dsc
# apt-get source nco # Get package source
sudo /bin/rm /var/cache/pbuilder/result/nco_4.7.7* # Cleanup prior build
sudo /bin/rm /var/cache/pbuilder/result/nco_4.7.8* # Cleanup prior build
# To pass DEB_BUILD_OPTIONS to pbuilder while using sudo, one must first
# modify sudoers with visudo to prevent sudo from resetting environment
#export DEB_BUILD_OPTIONS='disable-dap-netcdf disable-netcdf4 disable-udunits2'; # Disable optional packages based on available Debian support
cd ${DATA};DIST=sid sudo pbuilder build nco_4.7.7-1.dsc > ~/foo.nco.pbuilder 2>&1
cd /var/cache/pbuilder/result;debsign -k6F635D10 nco_4.7.7-1_*.changes
lintian /var/cache/pbuilder/result/nco_4.7.7-1_*.deb
cd ${DATA};DIST=sid sudo pbuilder build nco_4.7.8-1.dsc > ~/foo.nco.pbuilder 2>&1
cd /var/cache/pbuilder/result;debsign -k6F635D10 nco_4.7.8-1_*.changes
lintian /var/cache/pbuilder/result/nco_4.7.8-1_*.deb
sudo dpkg --remove nco
sudo dpkg --install /var/cache/pbuilder/result/nco_4.7.7-1_*.deb
sudo dpkg --install /var/cache/pbuilder/result/nco_4.7.8-1_*.deb
cd ~/nco/bld;MY_BIN_DIR=/usr/bin ../bm/nco_bm.pl --regress
# NB: Upload pbuilder Debian Sid packages to Debian mentors, but not
# to personal or NCO websites since most people use Ubuntu not Debian
# NB: Debian versions are a PITA, ensure RPMs build before uploading to Debian
cd /var/cache/pbuilder/result;dupload -t mentors nco_4.7.7-1_*.changes
cd /var/cache/pbuilder/result;dupload -t mentors nco_4.7.8-1_*.changes
# RPM builds as root
export rpm_root='/usr/src/redhat'
# export sudo_sng='' # sudo not-necessary when builing in user directories
export sudo_sng='sudo' # sudo necessary when building in system directories
cd ~/nco;cvc;cvu
/bin/rm -rf ${DATA}/nco-4.7.7 ${DATA}/nco-4.7.7* # Cleanup last build
/bin/rm -rf ${DATA}/nco-4.7.8 ${DATA}/nco-4.7.8* # Cleanup last build
${sudo_sng} /bin/rm -r -f \
${rpm_root}/BUILD/nco-4.7.7 \
${rpm_root}/RPMS/i386/nco-4.7.7-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-debuginfo-4.7.7-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-devel-4.7.7-?.i386.rpm \
${rpm_root}/SOURCES/nco-4.7.7.tar.gz \
${rpm_root}/SPECS/nco-4.7.7.spec \
${rpm_root}/SRPMS/nco-4.7.7-?.src.rpm
cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -r nco-4.7.7-1 -d nco-4.7.7 nco # Export based on tag
${sudo_sng} ln -s ${HOME}/nco/bld/nco.spec ${rpm_root}/SPECS/nco-4.7.7.spec
tar cvzf ./nco-4.7.7.tar.gz --exclude='nco-4.7.7/debian*' --exclude='.cvsignore' --exclude='ncap_lex.c' --exclude='ncap_yacc.[ch]' ./nco-4.7.7
${sudo_sng} /bin/cp ${DATA}/nco-4.7.7.tar.gz ${rpm_root}/SOURCES
${rpm_root}/BUILD/nco-4.7.8 \
${rpm_root}/RPMS/i386/nco-4.7.8-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-debuginfo-4.7.8-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-devel-4.7.8-?.i386.rpm \
${rpm_root}/SOURCES/nco-4.7.8.tar.gz \
${rpm_root}/SPECS/nco-4.7.8.spec \
${rpm_root}/SRPMS/nco-4.7.8-?.src.rpm
cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -r nco-4.7.8-1 -d nco-4.7.8 nco # Export based on tag
${sudo_sng} ln -s ${HOME}/nco/bld/nco.spec ${rpm_root}/SPECS/nco-4.7.8.spec
tar cvzf ./nco-4.7.8.tar.gz --exclude='nco-4.7.8/debian*' --exclude='.cvsignore' --exclude='ncap_lex.c' --exclude='ncap_yacc.[ch]' ./nco-4.7.8
${sudo_sng} /bin/cp ${DATA}/nco-4.7.8.tar.gz ${rpm_root}/SOURCES
cd ${rpm_root}/SPECS
${sudo_sng} rpmbuild -ba --sign nco-4.7.7.spec > ~/foo.nco 2>&1
${sudo_sng} rpmbuild -ba --sign nco-4.7.8.spec > ~/foo.nco 2>&1
scp \
${rpm_root}/RPMS/i386/nco-4.7.7-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-debuginfo-4.7.7-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-devel-4.7.7-?.i386.rpm \
${rpm_root}/SRPMS/nco-4.7.7-?.src.rpm \
${rpm_root}/RPMS/i386/nco-4.7.8-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-debuginfo-4.7.8-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-devel-4.7.8-?.i386.rpm \
${rpm_root}/SRPMS/nco-4.7.8-?.src.rpm \
dust.ess.uci.edu:/var/www/html/nco/src
scp \
${rpm_root}/RPMS/i386/nco-4.7.7-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-debuginfo-4.7.7-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-devel-4.7.7-?.i386.rpm \
${rpm_root}/SRPMS/nco-4.7.7-?.src.rpm \
${rpm_root}/RPMS/i386/nco-4.7.8-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-debuginfo-4.7.8-?.i386.rpm \
${rpm_root}/RPMS/i386/nco-devel-4.7.8-?.i386.rpm \
${rpm_root}/SRPMS/nco-4.7.8-?.src.rpm \
zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
# RPM builds as user
......@@ -256,33 +256,33 @@ zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
export rpm_root="${DATA}/rpm/nco"
#cd ~/nco;cvc;cvu # This risks committing unwanted *.[ch]pp files
mkdir -p ${DATA}/rpm/nco/TMP ${DATA}/rpm/nco/BUILD
/bin/rm -rf ${DATA}/nco-4.7.7 ${DATA}/nco-4.7.7* # Cleanup last build
/bin/rm -rf ${DATA}/nco-4.7.8 ${DATA}/nco-4.7.8* # Cleanup last build
/bin/rm -r -f \
${rpm_root}/nco-4.7.7-?.src.rpm \
${rpm_root}/nco-4.7.7.spec \
${rpm_root}/nco-4.7.7.tar.gz \
${rpm_root}/*/nco-4.7.7-?.*.rpm \
${rpm_root}/*/nco-debuginfo-4.7.7-?.*.rpm \
${rpm_root}/*/nco-devel-4.7.7-?.*.rpm
# cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -r nco-4.7.7-1 -d nco-4.7.7 nco # Export based on tag
cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -D "1 second ago" -dnco-4.7.7 nco # Export most recent and build as 4.7.7-1
tar cvzf ./nco-4.7.7.tar.gz --exclude='nco-4.7.7/debian*' --exclude='.cvsignore' --exclude='ncap_lex.c' --exclude='ncap_yacc.[ch]' ./nco-4.7.7
/bin/cp ${DATA}/nco-4.7.7.tar.gz ${rpm_root}
${rpm_root}/nco-4.7.8-?.src.rpm \
${rpm_root}/nco-4.7.8.spec \
${rpm_root}/nco-4.7.8.tar.gz \
${rpm_root}/*/nco-4.7.8-?.*.rpm \
${rpm_root}/*/nco-debuginfo-4.7.8-?.*.rpm \
${rpm_root}/*/nco-devel-4.7.8-?.*.rpm
# cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -r nco-4.7.8-1 -d nco-4.7.8 nco # Export based on tag
cd ${DATA};cvs -d zender@nco.cvs.sf.net:/cvsroot/nco export -kkv -D "1 second ago" -dnco-4.7.8 nco # Export most recent and build as 4.7.8-1
tar cvzf ./nco-4.7.8.tar.gz --exclude='nco-4.7.8/debian*' --exclude='.cvsignore' --exclude='ncap_lex.c' --exclude='ncap_yacc.[ch]' ./nco-4.7.8
/bin/cp ${DATA}/nco-4.7.8.tar.gz ${rpm_root}
ln -s ${HOME}/nco/bld/nco.spec ${rpm_root}/nco.spec
cd ${rpm_root}
rpmbuild -ba --sign nco.spec > ~/foo.nco 2>&1
rpmlint ${rpm_root}/*/nco-4.7.7-?.*.rpm
rpmlint ${rpm_root}/*/nco-4.7.8-?.*.rpm
sudo yum remove nco
sudo yum install ${rpm_root}/*/nco-4.7.7-?.*.rpm
sudo yum install ${rpm_root}/*/nco-4.7.8-?.*.rpm
scp \
${rpm_root}/*/nco-4.7.7-?.*.rpm \
${rpm_root}/*/nco-debuginfo-4.7.7-?.*.rpm \
${rpm_root}/*/nco-devel-4.7.7-?.*.rpm \
${rpm_root}/nco-4.7.7-?.*.src.rpm \
${rpm_root}/*/nco-4.7.8-?.*.rpm \
${rpm_root}/*/nco-debuginfo-4.7.8-?.*.rpm \
${rpm_root}/*/nco-devel-4.7.8-?.*.rpm \
${rpm_root}/nco-4.7.8-?.*.src.rpm \
dust.ess.uci.edu:/var/www/html/nco/src
scp \
${rpm_root}/*/nco-4.7.7-?.*.rpm \
${rpm_root}/*/nco-debuginfo-4.7.7-?.*.rpm \
${rpm_root}/*/nco-devel-4.7.7-?.*.rpm \
${rpm_root}/nco-4.7.7-?.*.src.rpm \
${rpm_root}/*/nco-4.7.8-?.*.rpm \
${rpm_root}/*/nco-debuginfo-4.7.8-?.*.rpm \
${rpm_root}/*/nco-devel-4.7.8-?.*.rpm \
${rpm_root}/nco-4.7.8-?.*.src.rpm \
zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
......@@ -70,7 +70,7 @@ Try to disable Spammers' machines:
<p><h1 align="center">Bienvenue sur le netCDF Operator (NCO) site</h1>
<p><h2>
Current stable NCO version is 4.7.7 released <!--#flastmod file="src/nco-4.7.7.tar.gz"-->
Current stable NCO version is 4.7.8 released <!--#flastmod file="src/nco-4.7.8.tar.gz"-->
</h2>
<table border=0 width=100%>
......@@ -149,7 +149,8 @@ and
<h2>Recent Releases &amp; Milestones</h2>
<ul>
<li>2018 Oct&nbsp;??: 4.7.8 <i>In Progress...</i>
<li>2019 Jan&nbsp;??: 4.7.9 <i>In Progress...</i>
<li>2018 Nov&nbsp;16: 4.7.8 CMIP6
<li>2018 Sep&nbsp;21: 4.7.7 Sundry features/fixes
<li>2018 Aug&nbsp;11: 4.7.6 ncremap RRG, MWF
<li>2018 Jun&nbsp;10: 4.7.5 Sundry features/fixes
......@@ -627,15 +628,18 @@ Identical copies of those tarballs are also stored
<a href="http://nco.sf.net/src">here</a> on SourceForge for historical
continuity.
You may retrieve the source of tagged versions directly with, e.g.,
<tt>git clone -b 4.7.7 http://github.com/nco/nco.git nco-4.7.7</tt></a>.
<tt>git clone -b 4.7.8 http://github.com/nco/nco.git nco-4.7.8</tt></a>.
<ul>
<li><b>NCO 5.0.0</b>: (<i>Future</i>)
netCDF4 user-defined types support;
<tt>ncclimo -v</tt> splitter support for regular expressions?;
<tt>ncks --xtn</tt> better extensive variable treatment?;
<li><b>NCO 4.7.8</b>: (<i>In Progress, features in-progress or complete include</i>)
<li><b>NCO 4.7.9</b>: (<i>In Progress, features in-progress or complete include</i>)
<tt>ncremap</tt> weight generation;</li>
<li><b>NCO 4.7.7</b>: (<i>Current Stable Release</i>)
<tt>ncks --bsa</tt> Byte-swap algoritm;</li>
<li><b>NCO 4.7.8</b>: (<i>Current Stable Release</i>)
<li>ncremap/ncclimo --d2f</li> Double->Float map;
<li><b>NCO 4.7.7</b>:
<tt>ncpdq -M dbl_flt</tt> Double->Float map;
<tt>ncremap --skl</tt> skeleton files;
<tt>ncremap</tt> symmetric Gaussian interfaces;
......@@ -808,7 +812,7 @@ goodies besides NCO) to your automatically-searched channels with
&lsquo;<tt>conda config --add channels conda-forge</tt>&rsquo;, then
install NCO with &lsquo;<tt>conda install nco</tt>&rsquo;.
The default NCO installed by <tt>conda</tt> is generally within a month of the latest release.
<li><a href="https://github.com/conda-forge/nco-feedstock">nco-4.7.7</a> Executables Anaconda-compatible. Maintained by Filipe Fernandes.</li>
<li><a href="https://github.com/conda-forge/nco-feedstock">nco-4.7.8</a> Executables Anaconda-compatible. Maintained by Filipe Fernandes.</li>
Thanks to Rich Signell, Filipe Fernandes, Pedro Vicente, and others for developing and maintaining the NCO package for conda.
</ul>
......@@ -817,7 +821,7 @@ Thanks to Rich Signell, Filipe Fernandes, Pedro Vicente, and others for developi
<h3><a href="http://www.debian.org">Debian</a> and <a href="http://www.ubuntu.com">Ubuntu</a> GNU/Linux</a></h3>
<ul>
<!--
<li><a href="http://www.debian.org">Debian</a> and <a href="http://www.ubuntu.com">Ubuntu</a> GNU/Linux-compatible Intel systems, prebuilt binary executable <a href="http://www.debian.org">deb</a>: <a href="http://packages.debian.org/testing/math/nco.html">nco-4.7.7</a></li>
<li><a href="http://www.debian.org">Debian</a> and <a href="http://www.ubuntu.com">Ubuntu</a> GNU/Linux-compatible Intel systems, prebuilt binary executable <a href="http://www.debian.org">deb</a>: <a href="http://packages.debian.org/testing/math/nco.html">nco-4.7.8</a></li>
-->
<a href="http://packages.debian.org/unstable/science/nco">Debian NCO</a> and
<a href="https://launchpad.net/ubuntu/+source/nco">Ubuntu NCO</a> homepages.
......@@ -825,8 +829,8 @@ Thanks to Rich Signell, Filipe Fernandes, Pedro Vicente, and others for developi
NCO packages in the Debian/Ubuntu repositories (e.g., Sid and Raring) generally lag the packages distributed here by 6&ndash;12 months.
<a name="beta"></a><a name="prerelease"> <!-- http://nco.sf.net#beta -->
Newer (beta- or pre-release) packages are often available for intrepid Debian/Ubuntu users as described <a href="https://github.com/nco/nco/tree/master/doc/beta.txt">here</a>.
<dt>Debian package for most recent NCO release (install with, e.g., &lsquo;<tt>dpkg --install nco_4.7.7-1_i386.deb</tt>&rsquo;):</dt>
<li><a href="https://launchpad.net/ubuntu/+source/nco/4.7.7-1">nco_4.7.7-1_amd64.deb</a> : Executables AMD64-compatible</li>
<dt>Debian package for most recent NCO release (install with, e.g., &lsquo;<tt>dpkg --install nco_4.7.8-1_i386.deb</tt>&rsquo;):</dt>
<li><a href="https://launchpad.net/ubuntu/+source/nco/4.7.8-1">nco_4.7.8-1_amd64.deb</a> : Executables AMD64-compatible</li>
Thanks to Daniel Baumann, Sebastian Couwenberg, Barry deFreese, Francesco Lovergine,
Brian Mays, Rorik Peterson, and Matej Vela for their help packaging
NCO for Debian over the years.
......@@ -870,10 +874,10 @@ Thanks to Gavin Burris and Kyle Wilcox for documenting build procedures for RHEL
<!--
# Mac OS X 10.13 (High Sierra) systems (aerosol):
/usr/bin/scp ~/nco/doc/index.shtml zender,nco@web.sf.net:/home/project-web/nco/htdocs
cd ~/bin;tar cvzf ${DATA}/nco-4.7.7.macosx.10.13.tar.gz nc*;scp ${DATA}/nco-4.7.7.macosx.10.13.tar.gz zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
cd ~/bin;tar cvzf ${DATA}/nco-4.7.8.macosx.10.13.tar.gz nc*;scp ${DATA}/nco-4.7.8.macosx.10.13.tar.gz zender,nco@web.sf.net:/home/project-web/nco/htdocs/src
-->
The most up-to-date executables are probably those in the tarball below. Those unfamiliar with installing executables from tarballs may try the (older) <a href="http://en.wikipedia.org/wiki/Apple_Disk_Image">DMG</a> files (you may need to add <tt>/opt/local/bin</tt> to your executable path to access those operators).
<li><a href="src/nco-4.7.7.macosx.10.13.tar.gz">nco-4.7.7.macosx.10.13.tar.gz</a> (<!--#fsize file="src/nco-4.7.7.macosx.10.13.tar.gz"-->): Executables MacOSX 10.13-compatible (last updated <!--#flastmod file="src/nco-4.7.7.macosx.10.13.tar.gz"-->).
<li><a href="src/nco-4.7.8.macosx.10.13.tar.gz">nco-4.7.8.macosx.10.13.tar.gz</a> (<!--#fsize file="src/nco-4.7.8.macosx.10.13.tar.gz"-->): Executables MacOSX 10.13-compatible (last updated <!--#flastmod file="src/nco-4.7.8.macosx.10.13.tar.gz"-->).
(NB: These executables require
the <a href="http://trac.macosforge.org/projects/macports/wiki">MacPorts</a>
<a href="#bld_macports">dependencies</a> for <a href="http://svn.macports.org/repository/macports/trunk/dports/science/nco">NCO</a>). Maintained by NCO Project.</li>
......@@ -1068,12 +1072,12 @@ site.</li>
The simplest way to acquire the source is to download the compressed tarball:
<ul>
<li>
<!-- scp ${DATA}/nco-4.7.7.tar.gz zender,nco@web.sf.net:/home/project-web/nco/htdocs/src -->
<a href="https://github.com/nco/nco/archive/4.7.7.tar.gz">nco-4.7.7.tar.gz</a>
(<!--#fsize file="src/nco-4.7.7.tar.gz"--> compressed tar-file)<br>
<!--#exec cmd="openssl dgst -md5 src/nco-4.7.7.tar.gz"--><br>
<!--#exec cmd="openssl dgst -sha1 src/nco-4.7.7.tar.gz"--><br>
<!--#exec cmd="openssl dgst -sha256 src/nco-4.7.7.tar.gz"-->
<!-- scp ${DATA}/nco-4.7.8.tar.gz zender,nco@web.sf.net:/home/project-web/nco/htdocs/src -->
<a href="https://github.com/nco/nco/archive/4.7.8.tar.gz">nco-4.7.8.tar.gz</a>
(<!--#fsize file="src/nco-4.7.8.tar.gz"--> compressed tar-file)<br>
<!--#exec cmd="openssl dgst -md5 src/nco-4.7.8.tar.gz"--><br>
<!--#exec cmd="openssl dgst -sha1 src/nco-4.7.8.tar.gz"--><br>
<!--#exec cmd="openssl dgst -sha256 src/nco-4.7.8.tar.gz"-->
</li>
</ul>
......@@ -1092,8 +1096,8 @@ You may retrieve any NCO distribution you wish from
<a href="https://help.github.com">GitHub</a>.
Usually you wish to retrieve a recent tagged (i.e., released) version.
This command retrieves the entire NCO repository (&lt; 20&nbsp;MB) and
then checks out NCO version <tt>4.7.7</tt>:
<p><tt>git clone https://github.com/nco/nco.git;cd nco;git checkout 4.7.7</tt></p>
then checks out NCO version <tt>4.7.8</tt>:
<p><tt>git clone https://github.com/nco/nco.git;cd nco;git checkout 4.7.8</tt></p>
These commands retrieve the current (&ldquo;bleeding edge&rdquo;)
development version of NCO into a local directory named <tt>nco</tt>:
<p><tt>git clone https://github.com/nco/nco.git ~/nco</tt></p> or
......@@ -1101,9 +1105,9 @@ development version of NCO into a local directory named <tt>nco</tt>:
Track changes to the development version using
<p><tt>cd nco;git pull</tt></p>
One difference between running a "tagged" release
(e.g., <tt>4.7.7</tt>) and the development version is that the
(e.g., <tt>4.7.8</tt>) and the development version is that the
tagged release operators will print a valid version number (e.g.,
<tt>4.7.7</tt>) when asked to do so with the <tt>-r</tt> flag
<tt>4.7.8</tt>) when asked to do so with the <tt>-r</tt> flag
(e.g., <tt>ncks -r</tt>).
The development version simply places today's date in place of the
version.
......@@ -1251,9 +1255,9 @@ As of 20131101 there is no Cygwin package for ANTLR, and the netCDF package does
<li>Once you have installed the pre-requisites as shown above, you may then build the latest stable NCO and install it in, e.g., <tt>/usr/local</tt> with:
<tt>
<dt>wget https://github.com/nco/nco/archive/4.7.7.tar.gz</dt>
<dt>tar xvzf 4.7.7.tar.gz</dt>
<dt>cd nco-4.7.7</dt>
<dt>wget https://github.com/nco/nco/archive/4.7.8.tar.gz</dt>
<dt>tar xvzf 4.7.8.tar.gz</dt>
<dt>cd nco-4.7.8</dt>
<dt>./configure --prefix=/usr/local</dt>
<dt>make</dt>
<dt>sudo make install</dt>
......
......@@ -119,12 +119,12 @@ Octave TeXInfo manual shows clean TeXInfo structure
@setfilename nco.info
 
@c Define edition, date, ...
@set nco-edition 4.7.7
@set doc-edition 4.7.7
@set nco-edition 4.7.8
@set doc-edition 4.7.8
@set copyright-years 1995--2018
@set update-year 2018
@set update-date 19 September 2018
@set update-month September 2018
@set update-date 14 November 2018
@set update-month November 2018
 
@settitle @acronym{NCO} @value{nco-edition} User Guide
 
......@@ -1760,7 +1760,7 @@ to be the same as the @var{input-file} without any danger of
@cindex @acronym{RAM} disks
@cindex @acronym{RAM} files
Over time many ``power users'' have requested a way to turn-off the
fault-tolerance safety feature of automatically creating a temporary
fault-tolerance safety feature that automatically creates a temporary
file.
Often these users build and execute production data analysis scripts
that are repeated frequently on large datasets.
......@@ -9678,11 +9678,12 @@ Diskless access does not change this, but it does add an extra
read-from/write-to @acronym{RAM}.
However this extra @acronym{RAM} write/read does avoid contention for limited
system resources like disk-head access.
Operators which may benefit from @acronym{RAM} disks include @command{ncwa}, which
may need to read weighting variables multiple times, the multi-file
operators @command{ncra}, @command{ncrcat}, and @command{ncecat},
which may try to write output at least once per input file, and
@command{ncap2} scripts which may be arbitrarily long and convoluted.
Operators which may benefit from @acronym{RAM} disks include
@command{ncwa}, which may need to read weighting variables multiple
times, the multi-file operators @command{ncra}, @command{ncrcat}, and
@command{ncecat}, which may try to write output at least once per input
file, and @command{ncap2} scripts which may be arbitrarily long and
convoluted.
 
The @samp{--open_ram} switch causes input files to copied to @acronym{RAM} when
opened.
......@@ -9691,7 +9692,7 @@ access time delays caused by disk-head movement.
Usually input data is read at most once so it is unlikely that
requesting input files be stored in @acronym{RAM} will save much time.
The likeliest exceptions are files that are accessed numerous times,
such as those analyzed extensively analyzed by @command{ncap2}.
such as those repeatedly analyzed by @command{ncap2}.
 
Invoking @samp{--open_ram}, @samp{--ram_all}, or @samp{--diskless_all}
uses much more system memory.
......@@ -9706,15 +9707,15 @@ of four) smaller than your available system @acronym{RAM}.
See @ref{Memory Requirements} for further details.
 
@cindex @acronym{RAM} variables
The @samp{--create_ram} switch causes output files to be created in @acronym{RAM},
rather than on disk.
The @samp{--create_ram} switch causes output files to be created in
@acronym{RAM}, rather than on disk.
These files are copied to disk only when closed, i.e., when the
operator completes.
Creating files in @acronym{RAM} may save time, especially with @command{ncap2}
computations that are iterative, e.g., loops, and for multi-file
operators that write output every record (timestep) or file.
@acronym{RAM} files provide many of the same benefits as @acronym{RAM} variables in such
cases (@pxref{RAM variables}).
Creating files in @acronym{RAM} may save time, especially with
@command{ncap2} computations that are iterative, e.g., loops, and for
multi-file operators that write output every record (timestep) or file.
@acronym{RAM} files provide many of the same benefits as @acronym{RAM}
variables in such cases (@pxref{RAM variables}).
 
Two switches, @samp{--ram_all} and @samp{--diskless_all}, are convenient
shortcuts for specifying both @samp{--create_ram} and
......@@ -9730,9 +9731,10 @@ ncks --ram_all in.nc out.nc # Same as above
ncks --diskless_all in.nc out.nc # Same as above
@end example
 
It is straightforward to demonstrate the efficacy of @acronym{RAM} disks.
It is straightforward to demonstrate the efficacy of @acronym{RAM}
disks.
For @acronym{NASA} we constructed a test that employs @command{ncecat}
an arbitrary number (set to one hundred thousand) of files are all
an arbitrary number (set to one hundred thousand) of files that are all
symbolically linked to the same file.
Everything is on the local filesystem (not @acronym{DAP}).
@example
......@@ -9753,7 +9755,8 @@ Run normally on a laptop in 201303, this completes in @w{21 seconds}.
The @samp{--create_ram} reduces the elapsed time to @w{9 seconds}.
Some of this speed may be due to using symlinks and caching.
However, the efficacy of @samp{--create_ram} is clear.
Placing the output file in @acronym{RAM} avoids thousands of disk writes.
Placing the output file in @acronym{RAM} avoids thousands of disk
writes.
It is not unreasonable to for @acronym{NCO} to process a million files
like this in a few minutes.
However, there is no substitute for benchmarking with real files.
......@@ -12787,7 +12790,7 @@ Then it is possible to insert these hyperslabs into the records
@example
prs[$time,$height,$lat,$lon]=0.0;
prs(:,0,:,:)=th0;
prs(:,1,:,:)=th1
prs(:,1,:,:)=th1;
@end example
 
@noindent @strong{Reverse method}@*
......@@ -16361,8 +16364,11 @@ This page lists the @command{ncap2} operators in order of precedence (highest to
@node ID Quoting, create_bounds() function, Operator precedence and associativity , ncap2 netCDF Arithmetic Processor
@subsection ID Quoting
@cindex ID Quoting
In this section when I refer to a name I mean a variable name, attribute name or a dimension name
The allowed characters in a valid netCDF name vary from release to release. (See end section). If you want to use metacharacters in a name or use a method name as a variable name then the name has to be quoted wherever it occurs.
In this section a name refers to a variable, attribute, or dimension name.
The allowed characters in a valid netCDF name vary from release to
release. (See end section).
To use metacharacters in a name, or to use a method name as a variable
name, the name must be quoted wherever it occurs.
 
@noindent The default @acronym{NCO} name is specified by the regular expressions:
 
......@@ -16441,8 +16447,8 @@ The @command{ncap2} custom function 'create_bounds()' takes any monotonic 1D coo
The name of the input coordinate variable.
@item 2nd Argument
The dimension name of the second dimension of the output variable.
The size of this dimension should always be 2.
If the dimension does not exist create it using @code{defdim()}.
The size of this dimension should always @w{be 2}.
If the dimension does not yet exist create it first using @code{defdim()}.
@item 3rd Argument
The string value of a "bounds" attribute that is created in the input
coordinate variable.
......@@ -17892,7 +17898,12 @@ Default is @samp{cam}. Other options are @samp{clm2}, @samp{ocn},
@item -n @var{nco_opt} (@code{nco_opt}, @code{nco}, @code{nco_options})
Specifies a string of options to pass-through unaltered to
@command{ncks}.
@var{nco_opt} defaults to @samp{-O --no_tmp_fl}.
@var{nco_opt} defaults to @samp{--no_tmp_fl}.
Note that @command{ncclimo} passes its @var{nco_opt} to
@command{ncremap}.
This can cause unexpected results, so use the front-end options to
@command{ncclimo} when possible, rather than attempting to subvert
them with @var{nco_opt}.
 
@html
<a name="drc_rgr"></a> <!-- http://nco.sf.net/nco.html#drc_rgr -->
......@@ -20056,7 +20067,7 @@ whether to overwrite existing data.
For example, batch scripts will fail if @command{ncks} does not receive
responses to its queries.
Options @samp{-O} and @samp{-A} are available to force overwriting
existing files and variables, respectively.
existing files, and appending existing variables, respectively.
 
@unnumberedsubsec Options specific to @command{ncks}
 
......@@ -757,7 +757,7 @@ void gsl_cls::gsl_ini_stats(void){
gpr_vtr.push_back(gpr_cls("gsl_stats_covariance",f_unn(ncap_void),hnd_fnc_stat4,PS_COV));
# if NCO_GSLVERSION >= 110
# if NCO_GSL_VERSION >= 110
gpr_vtr.push_back(gpr_cls("gsl_stats_correlation",f_unn(ncap_void),hnd_fnc_stat4,PS_COR));
# endif // NCO_GSL_VERSION < 110
......
......@@ -158,6 +158,7 @@ main(int argc,char **argv)
int idx;
int jdx;
int lmt_nbr=0; /* Option d. NB: lmt_nbr gets incremented */
int log_lvl=0; /* [enm] netCDF library debugging verbosity [0..5] */
int md_open; /* [enm] Mode flag for nc_open() call */
int nbr_dmn_ass=int_CEWI;/* Number of dimensions in temporary list */
int nbr_dmn_in=int_CEWI; /* Number of dimensions in dim_in */
......@@ -407,7 +408,11 @@ main(int argc,char **argv)
nco_exit(EXIT_SUCCESS);
} /* endif "help" */
if(!strcmp(opt_crr,"hpss_try")) HPSS_TRY=True; /* [flg] Search HPSS for unfound files */
if(!strcmp(opt_crr,"log_lvl") || !strcmp(opt_crr,"log_level")){nc_set_log_level(optarg);} /* [enm] netCDF library debugging verbosity [0..5] */
if(!strcmp(opt_crr,"log_lvl") || !strcmp(opt_crr,"log_level")){
log_lvl=(int)strtol(optarg,&sng_cnv_rcd,NCO_SNG_CNV_BASE10);
if(*sng_cnv_rcd) nco_sng_cnv_err(optarg,"strtol",sng_cnv_rcd);
nc_set_log_level(log_lvl);
} /* !log_lvl */
if(!strcmp(opt_crr,"lbr") || !strcmp(opt_crr,"library")){
(void)nco_lbr_vrs_prn();
nco_exit(EXIT_SUCCESS);
......