Commit 8326f2b5 authored by Uwe Schulzweida's avatar Uwe Schulzweida

Merge branch 'develop'

parents 46d51a9f 14ea3bfd
......@@ -17,8 +17,8 @@
"CC": ["gcc"]
},
"jessie-mpi": {
"hostname": "mpipc149.mpi.zmaw.de",
"dir": "/scratch/local1/m300064/builds/remote",
"hostname": "breeze.mpi.zmaw.de",
"dir": "/home/mpim/m300064/builds/remote",
"envConfigFiles": ["/etc/profile",".profile"],
"CC": ["gcc","g++","clang","clang++"]
},
......
2016-10-31 Uwe Schulzweida
* Setpartab: added support for user defined attributes
2016-10-20 Uwe Schulzweida
* New operator cmorlite: apply variable_entry of cmor tables
2016-10-19 Uwe Schulzweida
* conv_cmor_table: added support for CMOR CMIP6 tables
2016-10-05 Uwe Schulzweida
* ml2pl: interpolation failed for data on hybrid half levels [Bug #7225]
2016-10-04 Uwe Schulzweida
* using CDI library version 1.8.0rc3
* Version 1.8.0rc3 release
2016-09-24 Uwe Schulzweida
* remapnn: optimize sort in kdtree (speedup ~20%)
......
CDO NEWS
--------
Version 1.8.0 (26 October 2016):
New features:
* NetCDF: Improved support for horizontal and vertical grids
* Changed default of option -f nc to netCDF2
* masklonlatbox: added support for unstructured grids
New operators:
Changed operators:
Fixed bugs:
* ml2pl: interpolation failed for data on hybrid half levels [Bug #7225]
Version 1.7.2 (28 June 2016):
New operators:
......
......@@ -547,6 +547,8 @@ Operator catalog:
Strbre strbre Strong breeze days index per time period
Strgal strgal Strong gale days index per time period
Hurr hurr Hurricane days index per time period
CMORlite cmorlite CMOR lite
CMOR cmor CMOR
-------------------------------------------------------------
Magics
-------------------------------------------------------------
......
......@@ -46,7 +46,7 @@ case "${HOSTNAME}" in
if test "$COMP" = icpc ; then
${CONFPATH}configure --enable-cxx \
$CDOLIBS \
CC=icc CXX=icpc CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
CC=icc CXX="icpc --std=c++11" CFLAGS="-g -Wall -O2 -qopt-report=5 -march=native"
elif test "$COMP" = icc ; then
${CONFPATH}configure \
$CDOLIBS \
......@@ -54,7 +54,7 @@ case "${HOSTNAME}" in
elif test "$COMP" = clang++ ; then
${CONFPATH}configure --enable-cxx \
$CDOLIBS \
CC=clang CXX=clang++ CFLAGS="-g -Wall -O3"
CC=clang CXX="clang++ --std=c++11" CFLAGS="-g -Wall -O3"
elif test "$COMP" = clang ; then
${CONFPATH}configure \
$CDOLIBS \
......@@ -62,7 +62,7 @@ case "${HOSTNAME}" in
elif test "$COMP" = g++ ; then
${CONFPATH}configure --enable-cxx \
$CDOLIBS \
CC=gcc CXX=g++ CFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native"
CC=gcc CXX="g++ --std=c++11" CFLAGS="-g -Wall -W -Wfloat-equal -pedantic -O3 -march=native"
elif test "$COMP" = gcc ; then
${CONFPATH}configure --prefix=$HOME/local \
--enable-maintainer-mode \
......@@ -134,7 +134,7 @@ case "${HOSTNAME}" in
--enable-cxx \
--enable-maintainer-mode \
$CDOLIBS \
CC=g++ CFLAGS="-g -Wall -O2 -DPIC -pie -mwindows" \
CC=gcc CXX=g++ CFLAGS="-g -Wall -O2 -DPIC -pie -mwindows" \
LDFLAGS='-L/usr/local/lib' \
LIBS='-lpthread -lm -lcurl -lhdf5_hl -lhdf5 -lz -lsz -laec -ldl'
else
......@@ -291,6 +291,14 @@ case "${HOSTNAME}" in
CC=$COMP CFLAGS="-g -Wall -O3" LIBS="-lopenjpeg" LDFLAGS='-lelf -v'
;;
g++|clang++)
case "$COMP" in
g++)
CC=gcc
;;
clang++)
CC=clang
;;
esac
${CONFPATH}configure --prefix=$HOME/local \
--program-suffix=-dev \
--enable-maintainer-mode \
......@@ -305,7 +313,7 @@ case "${HOSTNAME}" in
--with-fftw3 \
--with-proj \
--with-pic \
CC=$COMP CFLAGS="-g -Wall -O2" LIBS=-lopenjpeg
CC=$CC CXX=$COMP CFLAGS="-g -Wall -O2" CXXFLAGS="-g -Wall -O2" LIBS=-lopenjpeg
;;
esac
;;
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for cdo 1.8.0rc3.
# Generated by GNU Autoconf 2.68 for cdo 1.8.0rc4.
#
# 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.8.0rc3'
PACKAGE_STRING='cdo 1.8.0rc3'
PACKAGE_VERSION='1.8.0rc4'
PACKAGE_STRING='cdo 1.8.0rc4'
PACKAGE_BUGREPORT='http://mpimet.mpg.de/cdo'
PACKAGE_URL=''
......@@ -1395,7 +1395,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 cdo 1.8.0rc3 to adapt to many kinds of systems.
\`configure' configures cdo 1.8.0rc4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1465,7 +1465,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of cdo 1.8.0rc3:";;
short | recursive ) echo "Configuration of cdo 1.8.0rc4:";;
esac
cat <<\_ACEOF
......@@ -1613,7 +1613,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
cdo configure 1.8.0rc3
cdo configure 1.8.0rc4
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
......@@ -2206,7 +2206,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 cdo $as_me 1.8.0rc3, which was
It was created by cdo $as_me 1.8.0rc4, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
......@@ -3155,7 +3155,7 @@ fi
# Define the identity of the package.
PACKAGE='cdo'
VERSION='1.8.0rc3'
VERSION='1.8.0rc4'
cat >>confdefs.h <<_ACEOF
......@@ -21644,7 +21644,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 cdo $as_me 1.8.0rc3, which was
This file was extended by cdo $as_me 1.8.0rc4, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -21710,7 +21710,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="\\
cdo config.status 1.8.0rc3
cdo config.status 1.8.0rc4
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
......
......@@ -4,7 +4,7 @@
# autoconf 2.68
# libtool 2.4.2
AC_INIT([cdo], [1.8.0rc3], [http://mpimet.mpg.de/cdo])
AC_INIT([cdo], [1.8.0rc4], [http://mpimet.mpg.de/cdo])
AC_DEFINE_UNQUOTED(CDO, ["$PACKAGE_VERSION"], [CDO version])
......
......@@ -139,6 +139,8 @@ Strwin Miscellaneous
Strbre Miscellaneous
Strgal Miscellaneous
Hurr Miscellaneous
CMORlite Miscellaneous
CMOR Miscellaneous
Magplot Magics
Magvector Magics
Maggraph Magics
......
\begin{thebibliography}{xx}
\bibitem[CDI]{CDI} \ \\
\href{https://code.zmaw.de/projects/cdi}
{Climate Data Interface},
from the
\href{http://www.mpimet.mpg.de}
{Max Planck Institute for Meteorologie}
\bibitem[CDO]{CDO} \ \\
\href{https://code.zmaw.de/projects/cdo}
{Climate Data Operators},
from the
\href{http://www.mpimet.mpg.de}
{Max Planck Institute for Meteorologie}
\bibitem[CMOR]{CMOR} \ \\
\href{git://github.com/PCMDI/cmor.git}
{Climate Model Output Rewriter},
from the
\href{https://www-pcmdi.llnl.gov}
{ Program For Climate Model Diagnosis and Intercomparison (PCMDI)}
\end{thebibliography}
\documentclass[DIV16,BCOR1cm,10pt,a4paper,fleqn,twoside]{scrreprt} % for pdf output
%\documentclass[DIV16,BCOR1cm,10pt,a4paper,fleqn]{scrreprt} % for pdf output
%\documentclass[DIV16,BCOR1cm,11pt,a4paper,fleqn]{report} % for pdf output
% To allow automatic selection of the right graphics type ...
% preset \pdfoutput for older latex installation, it is allways definted for
% news ones
\ifx\pdfoutput\undefined
\gdef\pdfoutput{0}
\fi
\newif\ifpdfx
\ifnum\pdfoutput=0
% latex is called for dvi output
\pdfxfalse
\usepackage{graphicx}
\else
% pdflatex is called for pdf output
\pdfxtrue
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{hyperref}
\fi
\usepackage{textcomp}
%\newcommand{\CDO}{{\bfseries\sffamily CDO\ }}
\newcommand{\CDO}{{\bfseries\sffamily CDO}}
\newcommand{\cdologo}{\includegraphics{logo/cdo_logo}}
\graphicspath{{figures/}}
% To define headers and footers
\usepackage{fancyhdr}
\pagestyle{fancy}
% Headers and footers personalization using the `fancyhdr' package
\fancyhf{} % Clear all fields
\renewcommand{\headrulewidth}{0.2mm}
\renewcommand{\footrulewidth}{0.2mm}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}
%\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
%\renewcommand{\sectionmark}[1]{\markleft{#1}}
\fancyhead[LO,RE]{\slshape \leftmark}
\fancyhead[LE,RO]{\slshape \rightmark}
\fancyfoot[LE,RO]{\Large\thepage}
%\fancyfoot[LO,RE]{\raisebox{-2.8mm}{\scalebox{0.17}{\cdologo}}}
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers
\renewcommand{\headrulewidth}{0pt}
}
%\setlength{\footnotesep}{0cm}
%\setlength{\footskip}{-2cm}
%\renewcommand{\footnoterule}{\rule{0cm}{0cm}}
\usepackage{exscale}
\usepackage{array,colortbl} % color table
\usepackage{listings}
\usepackage{longtable}
\usepackage{color}
\definecolor{pcolor1}{rgb}{0.992, 0.980, 0.875} % rgb: 253/250/223
\definecolor{pcolor2}{rgb}{1.000, 0.925, 0.700} % rgb: 255/236/278
\definecolor{pcolor3}{rgb}{0.968, 0.756, 0.623} % rgb: 247/193/159
%\usepackage{ae} % fuer die "almost european" computer modern fonts
%\usepackage{url} % Standard-Paket fuer WWW-Adressen
%\typearea{10} % Einen sinnvollen Satzspiegel aktivieren
%Usage:
%pdflatex cdo.tex
%pdflatex cdo.tex
%cat > cdo.ist << 'EOF'
%delim_0 "{\\idxdotfill} "
%headings_flag 1
%heading_prefix "{\\centerline {\\Large \\bf "
%heading_suffix "}}"
%EOF
%makeindex -s cdo.ist cdo.idx
%pdflatex cdo
%thumbpdf cdo
%pdflatex cdo
\usepackage{thumbpdf}
%\usepackage{html}
\usepackage{makeidx}
%\ifpdf
%\usepackage[a4paper, colorlinks=true, pdfstartview=FitV, bookmarks=true, linkcolor=blue,
% citecolor=blue, urlcolor=blue, latex2html=true]{hyperref}
%\fi
\usepackage{hyperref}
\hypersetup{pdftoolbar=true,
pdfmenubar=true,
pdfwindowui=true,
% pdffitwindow=true,
pdfauthor={Uwe Schulzweida},
pdftitle={CDO Climate Data Operators},
pdfcreator={pdflatex + hyperref},
pdfstartview=FitV,
% pdfpagemode=FullScreen,
a4paper,
bookmarks=true,
linkcolor=blue,
citecolor=blue,
urlcolor=blue,
colorlinks=true}
\setlength{\parindent}{0em}
\setlength{\parskip}{1.5ex plus0.5ex minus0.5ex}
\extrarowheight1pt
\makeindex
%\newcommand{\ii}[1]{\textit{#1}} \newcommand{\nn}[1]{#1n}
%\renewcommand{\dotfill}{\leaders\hbox to 5p1{\hss.\hss}\hfill}
%\newcommand{\idxdotfill}{5p1{\hss.\hss}\hfill}
\newcommand{\idxdotfill}{\ \dotfill \ }
%\def\idxdotfill{\leaders\hbox to.6em{\hss .\hss}\hskip 0pt plus 1fill}
%\MakeShortVerb{\@}
\renewcommand{\indexname}{Operator index}
\newenvironment{defalist}[1]
{\begin{list}{}
{\settowidth{\labelwidth}{#1\ \ }
\setlength{\itemsep}{0mm}
\setlength{\itemindent}{0mm}
%\setlength{\listparindent}{25mm}
\setlength{\leftmargin}{\labelwidth}
%\setlength{\leftmargin}{25mm}
\setlength{\labelsep}{2mm}
\addtolength{\leftmargin}{\labelsep}
%\addtolength{\leftmargin}{8mm}
}}
{\end{list}}
\newenvironment{defalist2}[1]
{\begin{list}{}
{\settowidth{\labelwidth}{#1\ \ }
\setlength{\itemsep}{0mm}
\setlength{\itemindent}{0mm}
%\setlength{\listparindent}{25mm}
\setlength{\leftmargin}{\labelwidth}
%\setlength{\leftmargin}{25mm}
\setlength{\labelsep}{2mm}
\addtolength{\leftmargin}{\labelsep}
\addtolength{\leftmargin}{8mm}
}}
{\end{list}}
\newcommand{\miniwidth}{\textwidth}
\setcounter{secnumdepth}{3}
\begin{document}
\begin{titlepage}
\vspace*{50mm}
{\Huge{\bf CMOR support in \CDO}}
\setlength{\unitlength}{1cm}
\begin{picture}(16,0.4)
\linethickness{1.5mm}
%\put(0,0.1){\line(1,0){15.85}}
\put(0,0.1){\line(1,0){16.3}}
\end{picture}
\begin{flushright}
\large\bf{CMORizing of climate model data \\ October 2016}
\end{flushright}
\vfill
\Large{\bf Karl--Hermann Wieners, Uwe Schulzweida}
\Large{\sl Max Planck Institute for Meteorology}
\Large{\bf Mathis Rosenhauer}
\Large{\sl Deutsches Klimarechenzentrum (DKRZ)}
\begin{picture}(16,1)
\linethickness{1.0mm}
%\put(0,0.7){\line(1,0){15.85}}
\put(0,0.7){\line(1,0){16.3}}
\end{picture}
\end{titlepage}
\tableofcontents
\input{cmor_int}
\input{cmor_ref}
\input{bibcmor}
%\input{appendix}
\clearpage
\ifpdfx
\phantomsection
\addcontentsline{toc}{chapter}{\indexname}
\printindex
\else
\input{catalog}
\input{alphabetic_list}
\fi
\end{document}
\chapter{Introduction}
The Climate Data Operators ({\CDO}) software is a collection of operators
for standard processing of climate and forecast model data.
This document describes the additional {\CDO} operator cmor. This
operator is an interface to the CMOR library version 3 from PCMDI.
The CMOR support is available with {\CDO} release 1.8.0 or later.
The CMOR (Climate Model Output Rewriter) library comprises a set of
functions, that can be used to produce CF-compliant NetCDF files that
fulfill the requirements of many of the climate community's standard
model experiments. These experiments are collectively referred to as
MIP's and include, for example, AMIP, CMIP, CFMIP, PMIP, APE, and IPCC
scenario runs. The output resulting from CMOR is "self-describing" and
facilitates analysis of results across models.
Much of the metadata written to the output files is defined in
MIP-specific tables, typically made available from each MIP's web
site. CMOR relies on these tables to provide much of the metadata
that is needed in the MIP context, thereby reducing the programming
effort required of the individual MIP contributors.
The CDO operator cmor reads the data with the internal IO library CDI
and writes the NetCDF result directly with the CMOR library.
\chapter{Building CDO with CMOR}
This section describes how to build and install {\CDO} with CMOR
support on a UNIX system.
\section{CMOR}
CMOR version 3 needs to be installed before building {\CDO}.
CMOR depends on the following external libraries:
netCDF-4.0 , HDF5, UDUNITS-2, zlib and uuid.
Make sure that you use exactly the same libraries for the {\CDO}
installation, otherwise the operator cmor will possibly not working correctly.
\section{Compilation}
First go to the {\CDO} \href{https://code.zmaw.de/projects/cdo}{\tt download} page
({\tt https://code.zmaw.de/projects/cdo}) to get the latest distribution,
if you do not have it yet.
Compilation is done by performing the following steps:
\begin{enumerate}
\item Unpack the archive, if you haven't done that yet:
\begin{verbatim}
gunzip cdo-$VERSION.tar.gz # uncompress the archive
tar xf cdo-$VERSION.tar # unpack it
cd cdo-$VERSION
\end{verbatim}
\item Configure {\CDO} with CMOR support:
The configuration depends on the location of the external libraries. Here is one example:
\begin{verbatim}
./configure --with-cmor=<CMOR root directory> --with-netcdf=<NetCDFroot directory> \
--with-uuid --with-udunits2 LIBS=-lossp-uuid \
CPPFLAGS="-I<CMOR root dir>/include/cdTime -I<CMOR root dir>/include/json-c"
\end{verbatim}
For an overview of other configuration options use
\begin{verbatim}
./configure --help
\end{verbatim}
\item Compile the program by running make:
\begin{verbatim}
make
\end{verbatim}
\end{enumerate}
The program should compile without problems and the binary ({\tt cdo})
should be available in the {\tt src} directory of the distribution.
\section{Installation}
After the compilation of the source code do a {\tt make install},
possibly as root if the destination permissions require that.
\begin{verbatim}
make install
\end{verbatim}
The binary is installed into the directory {\tt $<$prefix$>$/bin}.
{\tt $<$prefix$>$} defaults to {\tt /usr/local} but can be changed with
the {\tt --prefix} option of the configure script.
\chapter{\label{refman}CMOR operator reference manual}
This section gives a description of all {\CDO} operators to generate plots.
Related operators are grouped to modules.
For easier description all single input files are named {\tt ifile} or {\tt ifile1}, {\tt ifile2}, etc.,
and an arbitrary number of input files are named {\tt ifiles}.
All output files are named {\tt ofile} or {\tt ofile1}, {\tt ofile2}, etc.
\hspace{3mm}
\input{ref_list_cmor}
\input{ref_man_cmor}
......@@ -264,14 +264,14 @@ while (<MOFILE>) {
print TRLIST "Here is a short overview of all operators in this section:\\\\\n";
print TRLIST "\n";
if ( $shortname ne "climat" && $shortname ne "magics" ) {
if ( $shortname ne "climat" && $shortname ne "magics" && $shortname ne "xxxcmor" ) {
print TROVER "\\newpage\n";
print TROVER "\\section{$chap}\n";
print TROVER "\\input{ref_intro_${shortname}}\n";