Commit 8a6e91d6 authored by Uwe Schulzweida's avatar Uwe Schulzweida

Merge branch 'develop'

parents 3eb1f861 2001c549
......@@ -21,3 +21,5 @@ cdo_cmor.pdf
cdo_refcard.pdf
autom4te.cache
Makefile
TAGS
tags
[submodule "libcdi"]
path = libcdi
url = git@git.mpimet.mpg.de:libcdi.git
[submodule "test/bandit_tests/bandit"]
path = test/bandit_tests/bandit
url = https://github.com/banditcpp/bandit.git
......@@ -7,7 +7,7 @@
"breeze": {
"hostname": "breeze.mpimet.mpg.de",
"dir": "/home/mpim/m300064/builds/remote",
"envConfigFiles": ["/etc/profile",".profile"],
"envConfigFiles": ["/etc/profile","~/.profile"],
"CC": ["gcc","g++","clang","clang++","icc","icpc","pgcc"]
},
"mistral": {
......@@ -30,7 +30,9 @@
},
"wanglung": {
"hostname": "wanglung.mpimet.mpg.de",
"dir": "/home/zmaw/m300064/builds/remote"
"dir": "/home/zmaw/m300064/builds/remote",
"username": "m300064",
"CC": ["icc","pgcc","cray","gcc"]
},
"ubuntu-32bit": {
"hostname": "cdo4windows-ubuntu.mpimet.mpg.de",
......@@ -43,15 +45,21 @@
"remoteUser": "m300064",
"builders": {
"localCLANG_4.0_Debug": {
"localCLANG_noOpenMP": {
"hostname": "luthien",
"configureCall": "/home/ram/src/cdo/configure --with-netcdf --disable-openmp CC=clang CXX=clang++ CFLAGS='-g -O0' LDFLAGS=-lhdf5",
"configureCall": "/home/ram/src/cdo/configure --with-netcdf --disable-openmp CC=clang CXX=clang++ LDFLAGS=-lhdf5",
"makeCall": "make -j 12",
"sync": false
},
"localCLANG++_3.8_Debug": {
"localCLANG": {
"hostname": "luthien",
"configureCall": "/home/ram/src/cdo/configure --with-netcdf --disable-openmp --enable-cxx CC=clang CXX=clang++ CFLAGS='-g -O0'",
"configureCall": "/home/ram/src/cdo/configure --with-netcdf CC=clang CXX=clang++ CFLAGS='-g -O0' CXXFLAGS='-g -fopenmp' LDFLAGS='-lhdf5 -fopenmp=libiomp5'",
"makeCall": "make -j 12",
"sync": false
},
"localCLANG_Debug": {
"hostname": "luthien",
"configureCall": "/home/ram/src/cdo/configure --with-netcdf CC=clang CXX=clang++ CFLAGS='-g -O0 -Wall -fopenmp' CXXFLAGS='-g -O0 -Wall -fopenmp=libiomp5'",
"makeCall": "make -j 12",
"sync": false
},
......@@ -61,12 +69,24 @@
"makeCall": "make -j 12",
"sync": false
},
"localGCC_stackFail": {
"hostname": "luthien",
"configureCall": "/home/ram/src/cdo/configure --enable-hirlam-extensions --with-eccodes --with-netcdf --with-magics --with-udunits2 CFLAGS='-std=gnu99 -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fopenmp' CXXFLAGS='-std=gnu++11 -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fopenmp' CPPFLAGS='-I/usr/include/magics'",
"makeCall": "make -j 12",
"sync": false
},
"mpipcCLANG": {
"hostname": "breeze",
"configureCall": "./configure --with-netcdf=/sw/squeeze-x64/netcdf-4.2-static --disable-openmp CC=clang CFLAGS='-g -O2'",
"makeCall": "make -j 12",
"sync": true
},
"breezeGCC_stackFail": {
"hostname": "breeze",
"configureCall": "./configure CFLAGS='-std=gnu99 -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fopenmp' CXXFLAGS='-std=gnu++11 -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fopenmp'",
"makeCall": "make -j 12",
"sync": true
},
"cyg": {
"hostname": "cygwin",
"configureCall": "autoreconf -v -i ; ./config/default CC=gcc",
......@@ -90,7 +110,7 @@
"AUR":{
"doc": "local buildder for testing AUR-package",
"hostname": "luthien",
"configureCall": "/home/ram/src/cdo/configure --prefix=/usr --with-netcdf=/usr --with-udunits2=/usr --with-hdf5=/usr --with-szlib=/usr --with-proj=/usr --with-fftw3 --with-curl=/usr --with-grib_api=/usr --with-magics=/usr --with-libxml2=/usr CFLAGS='-g -O3 -std=gnu99 -Wall -fopenmp -march=native' LIBS='-lhdf5 -ljasper -lpng -lopenjpeg' CPPFLAGS='-I/usr/include/magics -I/usr/include/libxml2' LIBS='-leccodes -lhdf5'",
"configureCall": "/home/ram/src/cdo/configure --prefix=/usr --with-netcdf=/usr --with-udunits2=/usr --with-hdf5=/usr --with-szlib=/usr --with-proj=/usr --with-fftw3 --with-curl=/usr --with-eccodes=/usr --with-magics=/usr --with-libxml2=/usr CFLAGS='-g -O3 -std=gnu99 -Wall -fopenmp -march=native' CXXFLAGS='-g -O3 -std=c++11 -Wall -fopenmp -march=native' LIBS='-lhdf5 -ljasper -lpng -lopenjpeg' CPPFLAGS='-I/usr/include/magics -I/usr/include/libxml2'",
"makeCall": "make -j 12",
"sync": false
},
......
Schulzweida, U. (2017), Climate Data Operators (CDO) User Guide, Version 1.9.1,
Schulzweida, U. (2018), Climate Data Operators (CDO) User Guide, Version 1.9.3,
https://code.mpimet.mpg.de/projects/cdo/embedded/cdo.pdf
2018-01-29 Uwe Schulzweida
* Using CDI library version 1.9.3
* Version 1.9.3 release
2018-01-27 Uwe Schulzweida
* intlevel: optionally use 3d z-var from input file
2018-01-25 Uwe Schulzweida
* Replaced isnan() by std::isnan()
2018-01-22 Uwe Schulzweida
*expr: added function cday(), cmonth(), cyear(), csecond(), cminute(), chour()
2018-01-18 Uwe Schulzweida
* expr: added function ctimestep(), cdate(), ctime(), cdeltat()
2018-01-15 Uwe Schulzweida
* uvDestag: target grid undefined in output (bug fix)
2018-01-11 Uwe Schulzweida
* runpctl: fails since release 1.8.0 (bug fix)
2017-12-26 Uwe Schulzweida
* read of reduced Gaussian grid description file failed [Bug #8146]
2017-12-06 Uwe Schulzweida
* remapdis/remapnn without extrapolation on non global curvilinear grids:
replaced expansion of borders by local search
2017-11-30 Uwe Schulzweida
* New operator not: logical NOT (1, if x equal 0; else 0)
2017-11-23 Uwe Schulzweida
* Fix read error on grid description file [Bug #8099]
2017-11-21 Uwe Schulzweida
* Using CDI library version 1.9.2
* Version 1.9.2 release
......
# Process this file with automake to produce Makefile.in
SUBDIRS = libcdi src/lib/ncl src contrib test/data test
if MAINTAINER_MODE
SUBDIRS += test/bandit_tests
endif
#
EXTRA_DIST=config/default OPERATORS doc/cdo.pdf doc/cdo_cmor.pdf doc/cdo_eca.pdf doc/cdo_magics.pdf doc/cdo_refcard.pdf cdo.spec README
#
......
......@@ -77,6 +77,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@MAINTAINER_MODE_TRUE@am__append_1 = test/bandit_tests
subdir = .
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
......@@ -164,7 +165,8 @@ am__define_uniq_tagged_files = \
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
DIST_SUBDIRS = libcdi src/lib/ncl src contrib test/data test \
test/bandit_tests
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
......@@ -255,7 +257,6 @@ ENABLE_IEG = @ENABLE_IEG@
ENABLE_NC2 = @ENABLE_NC2@
ENABLE_NC4 = @ENABLE_NC4@
ENABLE_NC4HDF5 = @ENABLE_NC4HDF5@
ENABLE_NEARPT3 = @ENABLE_NEARPT3@
ENABLE_NETCDF = @ENABLE_NETCDF@
ENABLE_SERVICE = @ENABLE_SERVICE@
ENABLE_THREADS = @ENABLE_THREADS@
......@@ -389,7 +390,8 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
# Process this file with automake to produce Makefile.in
SUBDIRS = libcdi src/lib/ncl src contrib test/data test
SUBDIRS = libcdi src/lib/ncl src contrib test/data test \
$(am__append_1)
#
EXTRA_DIST = config/default OPERATORS doc/cdo.pdf doc/cdo_cmor.pdf doc/cdo_eca.pdf doc/cdo_magics.pdf doc/cdo_refcard.pdf cdo.spec README
#
......
CDO NEWS
--------
Version 1.9.3 (29 January 2018):
New features:
* expr: added time coordinate function cdate(), ctime(), cdeltat(), ctimestep() ...
New operators:
* not - logical NOT (1, if x equal 0; else 0)
Fixed bugs:
* uvDestag: target grid undefined in output
* runpctl: fails since release 1.8.0
* read of reduced Gaussian grid description file failed [Bug #8146]
* read error on grid description file [Bug #8099]
Version 1.9.2 (23 November 2017):
Fixed bugs:
......
......@@ -205,6 +205,7 @@ Operator catalog:
Math acos Arc cosine
Math atan Arc tangent
Math reci Reciprocal value
Math not Logical NOT
Arithc addc Add a constant
Arithc subc Subtract a constant
Arithc mulc Multiply with a constant
......
......@@ -91,6 +91,9 @@ def executeRemote(command, builder)
ssh.loop
end
end
def executeRemoteSimple(command,builder)
sh "ssh #{builder.username}@#{builder.hostname} '#{command}'"
end
#
# execution wrapper
def execute(command, builder)
......@@ -106,7 +109,11 @@ def execute(command, builder)
if builder.isLocal? then
executeLocal(commands)
else
executeRemote(commands,builder)
if ENV.include?('SIMPLE')
executeRemoteSimple(commands,builder)
else
executeRemote(commands,builder)
end
end
end
#
......@@ -204,9 +211,10 @@ def builder2task(builder,useHostAsName=false,syncSource=true)
end
@_help[:cmd] = "execute command within the target build dir, e.g. rake localGCC_cmd['pwd']" unless @_help.has_key?(:cmd)
task toDo[:cmd] ,:cmd do |t, args|
task toDo[:cmd] ,:cmd,:a,:b,:c,:d do |t, args|
warn "No command given!!" && exit(1) if args.cmd.nil?
execute(args.cmd,builder)
cmd = args.to_hash.values.join(',')
execute(cmd,builder)
end
@_help[:mods] = "get the auto loaded modules on the target machine"
......@@ -332,11 +340,17 @@ end
desc "generate tags database for vim and emacs"
task :tags do |t|
srcFiles = Dir.glob("src/**/*.{h,c}") + Dir.glob("libcdi/**/*.{c,h,cpp,hpp,f90,f}")
srcFiles = Dir.glob("src/**/*.{h,c,cc}") + Dir.glob("libcdi/**/*.{c,h,cpp,hpp,f90,f}")
Parallel.map(["","-e"]) {|ctagsOutputMode|
sh "ctags #{ctagsOutputMode} #{srcFiles.join(' ')}"
}
end
# build tags
task :tagList do
`git tag -l`.split.each {|tag|
puts tag
}
end
# check connections {{{
task :checkConnections do |t|
pp Parallel.map(@userConfig["hosts"]) {|host, config|
......
......@@ -178,12 +178,12 @@ case "${HOSTNAME}" in
;;
# jessie workstation x64
breeze*)
CDOLIBS="--with-grib_api=/sw/jessie-x64/grib_api-1.14.3-static-gccsys \
CDOLIBS="--with-eecodes=/sw/jessie-x64/eccodes/eccodes-2.4.1-gccsys \
--with-netcdf=/sw/jessie-x64/netcdf-4.3.3.1-gccsys \
--with-udunits2=/sw/jessie-x64/udunits-2.2.20-gccsys \
--with-proj=/sw/jessie-x64/proj4-4.9.3-gccsys LIBS=-lz"
if test "$COMP" = icpc ; then
${CONFPATH}configure --enable-cxx --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
${CONFPATH}configure --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
--with-fftw3 \
$CDOLIBS \
CC=icc CXX=icpc CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
......@@ -202,12 +202,12 @@ case "${HOSTNAME}" in
$CDOLIBS \
CC=clang CXX=clang++ CFLAGS="-g -O2"
elif test "$COMP" = clang++ ; then
${CONFPATH}configure --enable-cxx --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
${CONFPATH}configure --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
--with-fftw3 \
$CDOLIBS \
CC=clang CXX=clang++ CFLAGS="-g -O2"
elif test "$COMP" = g++ ; then
${CONFPATH}configure --enable-cxx \
${CONFPATH}configure \
$CDOLIBS \
CC=gcc CXX=g++ CFLAGS="-g -Wall -O3"
else
......@@ -295,7 +295,7 @@ case "${HOSTNAME}" in
--with-hdf5 \
--with-szlib \
--with-grib_api \
--with-udunits2 \
--with-eccodes \
--with-grib_api \
--with-fftw3 \
--with-proj \
......@@ -319,9 +319,8 @@ case "${HOSTNAME}" in
--with-netcdf \
--with-hdf5 \
--with-szlib \
--with-grib_api \
--with-eccodes \
--with-udunits2 \
--with-grib_api \
--with-fftw3 \
--with-proj \
--with-pic \
......
#! /bin/sh
# test-driver - basic testsuite driver script.
scriptversion=2012-06-27.10; # UTC
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
# Make unconditional expansion of undefined variables an error. This
# helps a lot in preventing typo-related bugs.
set -u
usage_error ()
{
echo "$0: $*" >&2
print_usage >&2
exit 2
}
print_usage ()
{
cat <<END
Usage:
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
[--expect-failure={yes|no}] [--color-tests={yes|no}]
[--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
END
}
# TODO: better error handling in option parsing (in particular, ensure
# TODO: $log_file, $trs_file and $test_name are defined).
test_name= # Used for reporting.
log_file= # Where to save the output of the test script.
trs_file= # Where to save the metadata of the test run.
expect_failure=no
color_tests=no
enable_hard_errors=yes
while test $# -gt 0; do
case $1 in
--help) print_usage; exit $?;;
--version) echo "test-driver $scriptversion"; exit $?;;
--test-name) test_name=$2; shift;;
--log-file) log_file=$2; shift;;
--trs-file) trs_file=$2; shift;;
--color-tests) color_tests=$2; shift;;
--expect-failure) expect_failure=$2; shift;;
--enable-hard-errors) enable_hard_errors=$2; shift;;
--) shift; break;;
-*) usage_error "invalid option: '$1'";;
esac
shift
done
if test $color_tests = yes; then
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
red='' # Red.
grn='' # Green.
lgn='' # Light green.
blu='' # Blue.
mgn='' # Magenta.
std='' # No color.
else
red= grn= lgn= blu= mgn= std=
fi
do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
trap "st=129; $do_exit" 1
trap "st=130; $do_exit" 2
trap "st=141; $do_exit" 13
trap "st=143; $do_exit" 15
# Test script is run here.
"$@" >$log_file 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
estatus=1
fi
case $estatus:$expect_failure in
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
0:*) col=$grn res=PASS recheck=no gcopy=no;;
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
esac
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
# Register the test result, and other relevant metadata.
echo ":test-result: $res" > $trs_file
echo ":global-test-result: $res" >> $trs_file
echo ":recheck: $recheck" >> $trs_file
echo ":copy-in-global-log: $gcopy" >> $trs_file
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for cdo 1.9.2.
# Generated by GNU Autoconf 2.68 for cdo 1.9.3.
#
# Report bugs to <http://mpimet.mpg.de/cdo>.
#
......@@ -570,8 +570,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='cdo'
PACKAGE_TARNAME='cdo'
PACKAGE_VERSION='1.9.2'
PACKAGE_STRING='cdo 1.9.2'
PACKAGE_VERSION='1.9.3'
PACKAGE_STRING='cdo 1.9.3'