Commit 4c382730 authored by Uwe Schulzweida's avatar Uwe Schulzweida

Merge branch 'develop'

parents bf886a61 7498f942
2017-05-15 Uwe Schulzweida
2017-08-15 Uwe Schulzweida
* Using CDI library version 1.9.0
* Version 1.9.0 release
2017-07-01 Uwe Schulzweida
setcodetab: added support for GRIB level type
2017-06-28 Uwe Schulzweida
* expr: improve ternary operator, no brackets needed anymore.
2017-06-27 Uwe Schulzweida
* expr: added support for clev in ifthenelse (bug fix).
* setpartabp: param key values without leading zeros (bug fix).
2017-06-08 Uwe Schulzweida
* mergetime: wrong time information if first input file does not contain the first time step (bug introduce in 1.8.1) [Bug #7760]
2017-06-04 Uwe Schulzweida
* selgridcell: read indices from mask
2017-06-02 Uwe Schulzweida
* New operator ensrange: Ensemble range (ensmax-ensmin)
* New operator vertrange: Vertical range (vertmax-vertmin)
* New operator merrange: Meridional range (mermax-mermin)
* New operator gridboxrange: Gridbox range (gribboxmax-gridboxmin)
2017-06-01 Uwe Schulzweida
* New operator yhourrange: Multi-year hourly range (yhourmax-yhourmin)
* New operator ydayrange: Multi-year daily range (ydaymax-ydaymin)
* New operator ymonrange: Multi-year monthly range (ymonmax-ymonmin)
* New operator yseasrange: Multi-year seasonal range (yseasmax-yseasmin)
2017-05-30 Uwe Schulzweida
* New operator seasrange: seasonal range (seasmax-seasmin)
* New operator timselrange: time selection range (timmax-timmin)
* New operator runrange: running range (runmax-runmin)
2017-05-26 Uwe Schulzweida
* eca_gsl: set default to northern hemisphere
2017-05-23 Uwe Schulzweida
* expr: addeed support for variables starting with digits
2017-05-22 Uwe Schulzweida
* settbounds: added support for hourly frequencies
2017-05-17 Uwe Schulzweida
* gridToCurvilinear: Check that nvertex of regular lonlat grid is 2 [Bug #7744]
2017-05-16 Uwe Schulzweida
* Renamed all .c files to .cc, code needs to be compiled with an ISO C++11 compiler!!!
2017-05-16 Uwe Schulzweida
* Using CDI library version 1.8.2
* Version 1.8.2 release
......@@ -93,6 +93,8 @@ DIST_COMMON = $(srcdir)/ $(srcdir)/ \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_options.m4 \
$(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
$(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
......@@ -234,13 +236,14 @@ DEPDIR = @DEPDIR@
......@@ -258,6 +261,7 @@ FGREP = @FGREP@
Version 1.9.0 (15 September 2017):
New features:
* Added range operator to all statistic modules (e.g. yearrange, zonrange)
New operators:
Version 1.8.2 (15 May 2017):
Fixed bugs:
......@@ -243,6 +243,7 @@ Operator catalog:
Consecstat consects Consecutive Timesteps
Ensstat ensmin Ensemble minimum
Ensstat ensmax Ensemble maximum
Ensstat ensrange Ensemble range
Ensstat enssum Ensemble sum
Ensstat ensmean Ensemble mean
Ensstat ensavg Ensemble average
......@@ -258,6 +259,7 @@ Operator catalog:
Ensval ensbrs Ensemble Brier score
Fldstat fldmin Field minimum
Fldstat fldmax Field maximum
Fldstat fldrange Field range
Fldstat fldsum Field sum
Fldstat fldmean Field mean
Fldstat fldavg Field average
......@@ -268,6 +270,7 @@ Operator catalog:
Fldstat fldpctl Field percentiles
Zonstat zonmin Zonal minimum
Zonstat zonmax Zonal maximum
Zonstat zonrange Zonal range
Zonstat zonsum Zonal sum
Zonstat zonmean Zonal mean
Zonstat zonavg Zonal average
......@@ -278,6 +281,7 @@ Operator catalog:
Zonstat zonpctl Zonal percentiles
Merstat mermin Meridional minimum
Merstat mermax Meridional maximum
Merstat merrange Meridional range
Merstat mersum Meridional sum
Merstat mermean Meridional mean
Merstat meravg Meridional average
......@@ -288,6 +292,7 @@ Operator catalog:
Merstat merpctl Meridional percentiles
Gridboxstat gridboxmin Gridbox minimum
Gridboxstat gridboxmax Gridbox maximum
Gridboxstat gridboxrange Gridbox range
Gridboxstat gridboxsum Gridbox sum
Gridboxstat gridboxmean Gridbox mean
Gridboxstat gridboxavg Gridbox average
......@@ -297,6 +302,7 @@ Operator catalog:
Gridboxstat gridboxvar1 Gridbox variance (n-1)
Vertstat vertmin Vertical minimum
Vertstat vertmax Vertical maximum
Vertstat vertrange Vertical range
Vertstat vertsum Vertical sum
Vertstat vertmean Vertical mean
Vertstat vertavg Vertical average
......@@ -304,18 +310,20 @@ Operator catalog:
Vertstat vertstd1 Vertical standard deviation (n-1)
Vertstat vertvar Vertical variance
Vertstat vertvar1 Vertical variance (n-1)
Timselstat timselmin Time range minimum
Timselstat timselmax Time range maximum
Timselstat timselsum Time range sum
Timselstat timselmean Time range mean
Timselstat timselavg Time range average
Timselstat timselstd Time range standard deviation
Timselstat timselstd1 Time range standard deviation (n-1)
Timselstat timselvar Time range variance
Timselstat timselvar1 Time range variance (n-1)
Timselstat timselmin Time selection minimum
Timselstat timselmax Time selection maximum
Timselstat timselrange Time selection range
Timselstat timselsum Time selection sum
Timselstat timselmean Time selection mean
Timselstat timselavg Time selection average
Timselstat timselstd Time selection standard deviation
Timselstat timselstd1 Time selection standard deviation (n-1)
Timselstat timselvar Time selection variance
Timselstat timselvar1 Time selection variance (n-1)
Timselpctl timselpctl Time range percentiles
Runstat runmin Running minimum
Runstat runmax Running maximum
Runstat runrange Running range
Runstat runsum Running sum
Runstat runmean Running mean
Runstat runavg Running average
......@@ -326,6 +334,7 @@ Operator catalog:
Runpctl runpctl Running percentiles
Timstat timmin Time minimum
Timstat timmax Time maximum
Timstat timrange Time range
Timstat timsum Time sum
Timstat timmean Time mean
Timstat timavg Time average
......@@ -336,6 +345,7 @@ Operator catalog:
Timpctl timpctl Time percentiles
Hourstat hourmin Hourly minimum
Hourstat hourmax Hourly maximum
Hourstat hourrange Hourly range
Hourstat hoursum Hourly sum
Hourstat hourmean Hourly mean
Hourstat houravg Hourly average
......@@ -346,6 +356,7 @@ Operator catalog:
Hourpctl hourpctl Hourly percentiles
Daystat daymin Daily minimum
Daystat daymax Daily maximum
Daystat dayrange Daily range
Daystat daysum Daily sum
Daystat daymean Daily mean
Daystat dayavg Daily average
......@@ -356,6 +367,7 @@ Operator catalog:
Daypctl daypctl Daily percentiles
Monstat monmin Monthly minimum
Monstat monmax Monthly maximum
Monstat monrange Monthly range
Monstat monsum Monthly sum
Monstat monmean Monthly mean
Monstat monavg Monthly average
......@@ -367,6 +379,7 @@ Operator catalog:
Yearmonstat yearmonmean Yearly mean from monthly data
Yearstat yearmin Yearly minimum
Yearstat yearmax Yearly maximum
Yearstat yearrange Yearly range
Yearstat yearsum Yearly sum
Yearstat yearmean Yearly mean
Yearstat yearavg Yearly average
......@@ -377,6 +390,7 @@ Operator catalog:
Yearpctl yearpctl Yearly percentiles
Seasstat seasmin Seasonal minimum
Seasstat seasmax Seasonal maximum
Seasstat seasrange Seasonal range
Seasstat seassum Seasonal sum
Seasstat seasmean Seasonal mean
Seasstat seasavg Seasonal average
......@@ -387,6 +401,7 @@ Operator catalog:
Seaspctl seaspctl Seasonal percentiles
Yhourstat yhourmin Multi-year hourly minimum
Yhourstat yhourmax Multi-year hourly maximum
Yhourstat yhourrange Multi-year hourly range
Yhourstat yhoursum Multi-year hourly sum
Yhourstat yhourmean Multi-year hourly mean
Yhourstat yhouravg Multi-year hourly average
......@@ -396,6 +411,7 @@ Operator catalog:
Yhourstat yhourvar1 Multi-year hourly variance (n-1)
Ydaystat ydaymin Multi-year daily minimum
Ydaystat ydaymax Multi-year daily maximum
Ydaystat ydayrange Multi-year daily range
Ydaystat ydaysum Multi-year daily sum
Ydaystat ydaymean Multi-year daily mean
Ydaystat ydayavg Multi-year daily average
......@@ -406,6 +422,7 @@ Operator catalog:
Ydaypctl ydaypctl Multi-year daily percentiles
Ymonstat ymonmin Multi-year monthly minimum
Ymonstat ymonmax Multi-year monthly maximum
Ymonstat ymonrange Multi-year monthly range
Ymonstat ymonsum Multi-year monthly sum
Ymonstat ymonmean Multi-year monthly mean
Ymonstat ymonavg Multi-year monthly average
......@@ -416,6 +433,7 @@ Operator catalog:
Ymonpctl ymonpctl Multi-year monthly percentiles
Yseasstat yseasmin Multi-year seasonal minimum
Yseasstat yseasmax Multi-year seasonal maximum
Yseasstat yseasrange Multi-year seasonal range
Yseasstat yseassum Multi-year seasonal sum
Yseasstat yseasmean Multi-year seasonal mean
Yseasstat yseasavg Multi-year seasonal average
......@@ -1244,6 +1244,8 @@ AC_SUBST([am__untar])
"CXX" : "@CXX@",
"CC" : "@CC@",
"CPP" : "@CPP@",
"LIBS" : "@LIBS@",
......@@ -24,7 +24,7 @@ do
if test -z "$COMP" ; then COMP=gcc ; fi
if test -z "$COMP" ; then COMP=gnu ; fi
set -x
......@@ -33,41 +33,50 @@ case "${HOSTNAME}" in
CDOLIBS="--enable-nearpt3 \
--with-fftw3 \
--with-grib_api=$HOME/local/grib_api-1.14.7aec \
--with-netcdf=$HOME/local/netcdf-c- \
--with-hdf5=$HOME/local/hdf5-1.8.15-threadsafe \
--with-eccodes=$HOME/local/eccodes-2.3.0 \
--with-netcdf=$HOME/local/netcdf- \
--with-hdf5=$HOME/local/hdf5-1.8.19-threadsafe \
--with-udunits2=/opt/local \
--with-curl=/opt/local \
--with-libxml2=/usr \
--with-magics=$HOME/local/Magics-2.25.3 \
--with-proj=/opt/local \
# --with-magics=$HOME/local/Magics-2.25.3 \
if test "$COMP" = icpc ; then
${CONFPATH}configure --enable-cxx \
CC=icc CXX="icpc --std=c++11" CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
elif test "$COMP" = icc ; then
${CONFPATH}configure \
CC=icc CFLAGS="-g -Wall -Wwrite-strings -O2 -qopt-report=5 -march=native"
elif test "$COMP" = clang++ ; then
${CONFPATH}configure --enable-cxx \
if test "$COMP" = intel ; then
${CONFPATH}configure \
CC=clang CXX="clang++ --std=c++11" CFLAGS="-g -Wall -O3"
LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.3.0/lib -Wl,-rpath,/opt/intel/lib" \
CXX=icpc CXXFLAGS="-g -Wall -O2 -qopt-report=5 -march=native" \
CC=icc CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
elif test "$COMP" = clang ; then
${CONFPATH}configure \
${CONFPATH}configure --prefix=$HOME/local \
--enable-maintainer-mode \
CC=clang CFLAGS="-g -Wall -Wwrite-strings -O3"
elif test "$COMP" = g++ ; then
${CONFPATH}configure --enable-cxx \
LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.3.0/lib" \
CXX=clang++ CXXFLAGS="-g -Wall -O3" \
CC=clang CFLAGS="-g -Wall -O3"
elif test "$COMP" = gnu4.9 ; then
${CONFPATH}configure --prefix=$HOME/local \
--enable-maintainer-mode \
LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.3.0/lib" \
CXX=g++-mp-4.9 CXXFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native" \
CC=gcc-mp-4.9 CFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native"
elif test "$COMP" = gnu5 ; then
${CONFPATH}configure --prefix=$HOME/local \
--enable-maintainer-mode \
CC=gcc CXX="g++ --std=c++11" CFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native"
elif test "$COMP" = gcc ; then
LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.3.0/lib" \
CXX=g++-mp-5 CXXFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native" \
CC=gcc-mp-5 CFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native"
elif test "$COMP" = gnu ; then
${CONFPATH}configure --prefix=$HOME/local \
--enable-maintainer-mode \
CC=gcc CFLAGS="-g -pipe -Wall -W -Wfloat-equal -Wwrite-strings -pedantic -O3 -march=native -fstack-protector"
LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.3.0/lib" \
CXX=g++ CXXFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native" \
CC=gcc CFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native"
# --with-libxml2=/usr
# --with-magics=/Users/m214003/local/magics-2.14.9
......@@ -76,51 +85,44 @@ case "${HOSTNAME}" in
# CDOLIBS="--with-fftw3 \
# --with-netcdf=/opt/local \
# --with-hdf5=/opt/local \
# --with-szlib=$HOME/local \
# --with-proj=/opt/local \
# --with-cmor=/Users/m214003/work/CMOR \
# --with-magics=$HOME/local/magics-2.25.3 \
# --with-curl=/opt/local"
CDOLIBS="--enable-nearpt3 \
--with-fftw3 \
--with-szlib=$HOME/local \
--with-grib_api=$HOME/local/grib_api-1.21.0 \
--with-eccodes=$HOME/local/eccodes-2.3.0 \
--with-netcdf=$HOME/local/netcdf-c- \
--with-hdf5=$HOME/local/hdf5-1.8.18 \
--with-libxml2=/opt/local \
if test "$COMP" = icpc ; then
${CONFPATH}configure --enable-cxx --prefix=$HOME/local \
CC=icc CXX=icpc CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native" CXX=icpc
elif test "$COMP" = icc ; then
${CONFPATH}configure \
if test "$COMP" = intel ; then
${CONFPATH}configure --prefix=$HOME/local --disable-openmp \
CC=icc CFLAGS="-g -Wall -Wwrite-strings -O2 -qopt-report=5 -march=native"
elif test "$COMP" = clang++ ; then
${CONFPATH}configure --enable-cxx \
CC=clang CXX=clang++ CFLAGS="-g -Wall -O3"
CXX=icpc CXXFLAGS="-g -Wall -O2 -qopt-report=5 -march=native" \
CC=icc CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
elif test "$COMP" = clang ; then
${CONFPATH}configure \
${CONFPATH}configure \
CC=clang CFLAGS="-g -Wall -Wwrite-strings -Ofast -march=native"
elif test "$COMP" = pgcc ; then
${CONFPATH}configure \
CXX=clang++ CXXFLAGS="-g -Wall -pedantic -O3" \
CC=clang CFLAGS="-g -Wall -pedantic -O3"
elif test "$COMP" = clang4 ; then
${CONFPATH}configure \
CC=pgcc CFLAGS="-g -fast"
elif test "$COMP" = g++ ; then
${CONFPATH}configure --enable-cxx \
CXX=clang++-mp-4.0 CXXFLAGS="-g -Wall -pedantic -O3" \
CC=clang-mp-4.0 CFLAGS="-g -Wall -pedantic -O3"
elif test "$COMP" = pgi ; then
${CONFPATH}configure --disable-openmp \
CC=gcc CXX=g++ CFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3"
CXX=pgc++ CXXFLAGS="-g -fast" \
CC=pgcc CFLAGS="-g -fast"
${CONFPATH}configure --prefix=$HOME/local \
--enable-maintainer-mode \
CC=gcc CFLAGS="-g -std=c11 -pipe -Wall -Wpointer-arith -Wwrite-strings -W -Wfloat-equal -pedantic -O3 -march=native -Wa,-q -fstack-protector -funsigned-char"
$CDOLIBS LDFLAGS="-Wl,-rpath,$HOME/local/eccodes-2.3.0/lib" \
CXX=g++ CXXFLAGS="-g -pipe -Wall -W -Wfloat-equal -pedantic -O3 -march=native -Wa,-q -fstack-protector" \
CC=gcc CFLAGS="-g -pipe -Wall -W -Wfloat-equal -pedantic -O3 -march=native -Wa,-q -fstack-protector"
# --with-libxml2=/usr \
# --with-magics=/Users/m214003/local/Magics-2.18.14nio \
......@@ -175,50 +177,6 @@ case "${HOSTNAME}" in
CC=gcc CFLAGS="-g -pipe -Wall -W -Wfloat-equal -pedantic -O3 -march=native -fstack-protector -Wa,-q"
# x86_64-squeeze-x64-linux
CDOLIBS="--with-grib_api=/sw/squeeze-x64/grib_api-1.13.0-static-gccsys \
--with-netcdf=/sw/squeeze-x64/netcdf-4.2-static \
--with-hdf5=/sw/squeeze-x64/hdf5-1.8.8-static \
--with-szlib=/sw/squeeze-x64/libaec-0.3.2-gcc48 \
--with-udunits2=/sw/squeeze-x64/udunits-2.1.19 \
--with-proj=/sw/squeeze-x64/proj-4.7.0 LIBS=-lz"
if test "$COMP" = icpc ; then
${CONFPATH}configure --enable-cxx --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
--with-fftw3 \
CC=icc CXX=icpc CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
elif test "$COMP" = icc ; then
${CONFPATH}configure --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
--with-fftw3 \
CC=icc CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
elif test "$COMP" = pgcc ; then
${CONFPATH}configure --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
CC=pgcc CFLAGS="-g -fast"
elif test "$COMP" = clang ; then
${CONFPATH}configure --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \
--with-fftw3 \
CC=clang CXX=clang++ CFLAGS="-g -O2"
elif test "$COMP" = clang++ ; then
${CONFPATH}configure --enable-cxx --prefix=$HOME/local --exec_prefix=$HOME/local/thunder \