[cmor] 06/12: upstream release 2.9.2 from https://zenodo.org/record/12258

Alastair McKinstry mckinstry at moszumanska.debian.org
Mon Aug 8 08:05:51 UTC 2016


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch debian/master
in repository cmor.

commit 21d46329701d5af176108ea27858b3ce5df5fa48
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Mon Jun 13 10:45:15 2016 +0100

    upstream release 2.9.2 from https://zenodo.org/record/12258
---
 Src/cmor_axes.c                       |    2 +-
 configure                             |    4 +-
 configure.ac                          |    4 +-
 debian/TODO.txt                       |    1 -
 debian/changelog                      |  205 --
 debian/compat                         |    1 -
 debian/control                        |   50 -
 debian/copyright                      |   16 -
 debian/libcmor-dev.docs               |    1 -
 debian/libcmor-dev.examples           |    1 -
 debian/libcmor-dev.install            |    2 -
 debian/libcmor2.dirs                  |    2 -
 debian/libcmor2.symbols.dont_use      |  292 ---
 debian/patches/clean.patch            |   21 -
 debian/patches/cmor_ver.patch         |   30 -
 debian/patches/debug-test.patch       |    5 -
 debian/patches/destdir.patch          |   47 -
 debian/patches/explicit-tests.patch   |  257 ---
 debian/patches/fix-makefile.patch     |   15 -
 debian/patches/ld-no-add-needed.patch |    7 -
 debian/patches/makefile-fix.patch     |   36 -
 debian/patches/ncldflags.patch        |   42 -
 debian/patches/pkgconfig.patch        |   36 -
 debian/patches/python3.patch          | 3322 ---------------------------------
 debian/patches/series                 |   11 -
 debian/patches/shlib-link.patch       |   89 -
 debian/patches/silence-warning.patch  |   17 -
 debian/python-cmor.install            |    1 -
 debian/python3-cmor.install           |    1 -
 debian/rules                          |   67 -
 debian/source/format                  |    1 -
 debian/source/options                 |    1 -
 32 files changed, 5 insertions(+), 4582 deletions(-)

diff --git a/Src/cmor_axes.c b/Src/cmor_axes.c
index 3d36413..3a8955b 100644
--- a/Src/cmor_axes.c
+++ b/Src/cmor_axes.c
@@ -1210,7 +1210,7 @@ int cmor_axis(int *axis_id, char *name,char *units, int length,void *coord_vals,
       if (refaxis.axis=='X') {
           /* mallocing space for wrapp issues on longitude */
           cmor_axes[cmor_naxes].wrapping=malloc(length*sizeof(int));
-          for (i==0;i<length;i++) cmor_axes[cmor_naxes].wrapping[i]=0;
+          for (i=0;i<length;i++) cmor_axes[cmor_naxes].wrapping[i]=0;
       }
       if ( cmor_axes[cmor_naxes].values == NULL ) {
 	snprintf(msg,CMOR_MAX_STRING,"cannot allocate memory for %i double elts for axis %s (table: %s)",length,cmor_axes[cmor_naxes].id,cmor_tables[CMOR_TABLE].table_id);
diff --git a/configure b/configure
index c365c44..e141c09 100755
--- a/configure
+++ b/configure
@@ -2133,8 +2133,8 @@ case ${target_os} in
    FTAG="-Wl,-rpath="
  ;;
  darwin*)
-   RTAG="-R"
-   FTAG="-Wl,-rpath="
+   RTAG="-Wl,-rpath,"
+   FTAG="-Wl,-rpath,"
  ;;
 esac
 
diff --git a/configure.ac b/configure.ac
index cd45206..b9cd377 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,8 +15,8 @@ case ${target_os} in
    FTAG="-Wl,-rpath="
  ;;
  darwin*)
-   RTAG="-R"
-   FTAG="-Wl,-rpath="
+   RTAG="-Wl,-rpath,"
+   FTAG="-Wl,-rpath,"
  ;;
 esac
 
diff --git a/debian/TODO.txt b/debian/TODO.txt
deleted file mode 100644
index 10240c2..0000000
--- a/debian/TODO.txt
+++ /dev/null
@@ -1 +0,0 @@
-* Currently working on python3 patch.  This fails testing on unicode/bytestring issues
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index 706be9e..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,205 +0,0 @@
-cmor (2.9.1-1) UNRELEASED; urgency=medium
-
-  * New upstream release.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 24 Jun 2014 12:00:26 +0100
-
-cmor (2.8.3-1) unstable; urgency=low
-
-  * New upstream release.
-  * Depend on debhelper >=9 now. Remove lintian override.
-  * Enable hardening.
-  * Enable build-twice.
-  * Standards-Version: 3.9.5
-  * Build-Conflict: on python packages. For correct testing.
-  * Use xz compression.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sat, 31 May 2014 18:19:02 +0100
-
-cmor (2.8.0-3) unstable; urgency=low
-
-  * Drop reference to upstream git repo for now. Closes: #661325
-  * Fix broken symlink libcmor.so. Closes: #681891
-  * Don't run test suite on kfreebsd-i386 as the buildds typically don't
-    have DFLSIZ set high enough. Closes: #598745. 
-  * Standards-Version: 3.9.3
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sun, 09 Sep 2012 13:56:03 +0100
-
-cmor (2.8.0-2) unstable; urgency=low
-
-  * Add lintian override for DH 9 without versioned depends.
-  * Remove libcmor2.install that adds incorrect double copy of library.
-    Closes: #650387. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sat, 04 Feb 2012 16:33:01 +0000
-
-cmor (2.8.0-1) unstable; urgency=low
-
-  * New upstream release.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sun, 27 Nov 2011 14:35:02 +0000
-
-cmor (2.7.1-4) unstable; urgency=low
-
-  * Add Multiarch support.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sat, 01 Oct 2011 13:24:48 +0100
-
-cmor (2.7.1-3) unstable; urgency=low
-
-  * Add dh_numpy call to get versioned depends on numpy. Closes: #641791.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 16 Sep 2011 14:03:07 +0100
-
-cmor (2.7.1-2) unstable; urgency=low
-
-  * Use python2 instead of python-central (and python-support)
-    Closes: #616778.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 16 Sep 2011 14:03:07 +0100
-
-cmor (2.7.1-1) unstable; urgency=low
-
-  * New upstream release. (Minor debugging statements removed).
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sun, 03 Jul 2011 18:24:50 +0100
-
-cmor (2.7.0-1) unstable; urgency=low
-
-  * New upstream release. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 21 Jun 2011 17:00:17 +0100
-
-cmor (2.6.1-1) unstable; urgency=low
-
-  * New upstream release 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 14 Jun 2011 10:39:10 +0100
-
-cmor (2.6-1) unstable; urgency=low
-
-  * New upstream release.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 07 Jun 2011 09:36:53 +0100
-
-cmor (2.5.9-1) unstable; urgency=low
-
-  * New upstream release. 
-  * Recommend latest cmip5 tables. (1.3.9).
-  * Standards-Version : 3.9.2
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 28 Apr 2011 10:19:48 +0100
-
-cmor (2.5.8-1) unstable; urgency=low
-
-  * New upstream release.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 12 Apr 2011 09:41:12 +0100
-
-cmor (2.5.7-1) unstable; urgency=low
-
-  * New upstream release. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 25 Feb 2011 23:24:49 +0000
-
-cmor (2.5.5-1) unstable; urgency=low
-
-  * New upstream release, fixing MPI issue. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 17 Feb 2011 09:33:18 +0000
-
-cmor (2.5.4-1) unstable; urgency=low
-
-  * New upstream release, fixing memory issue in python module. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 03 Feb 2011 15:42:41 +0000
-
-cmor (2.5.3-1) unstable; urgency=low
-
-  * New upstream release.
-  * Add Recommends: cmip5-cmor-tables to libcmor2 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 01 Feb 2011 09:51:35 +0000
-
-cmor (2.5.2-1) unstable; urgency=low
-
-  * New upstream release. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 24 Dec 2010 15:17:40 +0000
-
-cmor (2.5.1-2) unstable; urgency=low
-
-  [ Matthias Klose ]
-  * Fix build failure with ld --no-add-needed. Closes: #606210.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 07 Dec 2010 19:23:17 +0000
-
-cmor (2.5.1-1) unstable; urgency=low
-
-  * New upstream release. 
-  * Added debug-test.patch to help debug FTFBS on s390, kfreebsd-*
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sun, 05 Dec 2010 15:16:25 +0000
-
-cmor (2.5.0-1) unstable; urgency=low
-
-  * New upstream release.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sat, 13 Nov 2010 15:15:27 +0000
-
-cmor (2.4.0-1) unstable; urgency=low
-
-  * New upstream release.
-  * Minor patch to ensure Tables is created for tests to run.
-  * Build-Conflict: libcmor2. Package may fail to build in strange ways if
-    a pre-existing version of the library is present.
-  * Update Git server; its moved.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 29 Oct 2010 07:20:46 +0100
-
-cmor (2.3.0-2) unstable; urgency=low
-
-  * --enable-netcdf-4 not a valid option; remove. Just use autodetection. 
-  * libcmor.so.2 should be linked against -lossp-uuid; 
-  * Add -I${includedir}/cdTime to CFlags in cmor.pc
-  * Add FFlags variable to cmor.pc for Fortran.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 12 Oct 2010 00:24:35 +0100
-
-cmor (2.3.0-1) unstable; urgency=low
-
-  * New upstream release. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 08 Oct 2010 06:28:20 +0100
-
-cmor (2.2.1-1) unstable; urgency=low
-
-  * New Upstream release.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 17 Sep 2010 14:20:15 +0100
-
-cmor (2.2.0-2) unstable; urgency=low
-
-  * Include automake dependency; autoconf not needed. Closes: #592097.
-  * gfortran, python-numpy b-deps needed for python functionality.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 31 Aug 2010 18:40:03 +0100
-
-cmor (2.2.0-1) unstable; urgency=low
-
-  * Upstream release 2.2.0. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 25 Aug 2010 19:16:37 +0100
-
-cmor (2.0~rc10-2) unstable; urgency=low
-
-  * Add autoconf as build-dependency. Closes: #591932.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 06 Aug 2010 18:05:36 +0100
-
-cmor (2.0~rc10-1) unstable; urgency=low
-
-  * Initial release. (Closes: #584636).
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 29 Jul 2010 10:50:58 +0100
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index ec63514..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 5a9fa4e..0000000
--- a/debian/control
+++ /dev/null
@@ -1,50 +0,0 @@
-Source: cmor
-Section: utils
-Priority: extra
-Maintainer: Alastair McKinstry <mckinstry at debian.org>
-Build-Depends: debhelper (>= 9), dh-buildinfo, libossp-uuid-dev, libudunits2-dev, libnetcdf-dev, uuid-dev, python-all-dev (>= 2.6.6-3~), python-setuptools (>= 0.6b3), libgfortran3, automake, python-numpy, gfortran
-Build-Conflicts: libcmor2, python-cmor, python3-cmor
-Standards-Version: 3.9.5
-X-Python-Version: >= 2.6
-Homepage:  http://www2-pcmdi.llnl.gov/cmor
-
-Package: libcmor2
-Section: libs
-Architecture: any
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends: ${misc:Depends}, ${shlibs:Depends}
-Recommends: cmip5-cmor-tables (>= 1.3.9-1)
-Description: Climate Model Output Rewriter library
- The "Climate Model Output Rewriter" (CMOR, pronounced "Seymour") 
- comprises a set of C-based functions, with bindings to both Python 
- and FORTRAN 90, 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.
- 
-Package: libcmor-dev
-Section: libdevel
-Architecture: any
-Depends: libcmor2 ( = ${binary:Version}), ${misc:Depends}
-Recommends: pkg-config
-Description: Development files for Climate Model Output Rewriter
- The "Climate Model Output Rewriter" (CMOR, pronounced "Seymour") 
- comprises a set of C-based functions, with bindings to both Python 
- and FORTRAN 90, that can be used to produce CF-compliant netCDF files.
- that fulfill the requirements of many of the climate community's 
- standard model experiments.
- .
- This package contains files needed to build and link against the CMOR library.
-
-Package: python-cmor
-Section: python
-Architecture: any
-Multi-Arch: foreign
-Depends: ${pydeb:Depends}, ${python:Depends}, ${misc:Depends}, ${shlibs:Depends}
-Provides: ${python:Provides}
-Description: Python interface to CMOR
- This is a Python interface to CMOR, the Climate Model Output Rewriter.
-
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index 86d53ad..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,16 +0,0 @@
-CMOR2 was downloaded from PCDMI at: http://www2-pcmdi.llnl.gov/cmor, April 25, 2010,
-and packaged for Debian by Alastair McKinstry <mckinstry at debian.org>.
-
-CMOR is available for unrestricted release as explained below by PCDMI Legal staff:
-
-Copyright (c) 2010-2011, Lawrence Livermore National Security, LLC.
-
-Dear Alistair,
-
-Dean tells me that you also are interested in distributing CMOR as well as CDAT.  CMOR is approved for unrestricted release which is not an official open source license, but from our institution’s perspective we are supportive of it being included in your Debian distribution along with CDAT. I will be happy to work with you to achieve this. Feel free to call me at 925 422 3538 if you would like to discuss it by phone.             All the best, Leah
-
-Leah Rogers
-
-Business Development Executive
-Industrial Partnerships Office
-Lawrence Livermore National Laboratory 
diff --git a/debian/libcmor-dev.docs b/debian/libcmor-dev.docs
deleted file mode 100644
index 7762be7..0000000
--- a/debian/libcmor-dev.docs
+++ /dev/null
@@ -1 +0,0 @@
-Doc/*
diff --git a/debian/libcmor-dev.examples b/debian/libcmor-dev.examples
deleted file mode 100644
index cd56ec1..0000000
--- a/debian/libcmor-dev.examples
+++ /dev/null
@@ -1 +0,0 @@
-Test/*
diff --git a/debian/libcmor-dev.install b/debian/libcmor-dev.install
deleted file mode 100644
index 3a09fc1..0000000
--- a/debian/libcmor-dev.install
+++ /dev/null
@@ -1,2 +0,0 @@
-/usr/include/*	usr/include
-
diff --git a/debian/libcmor2.dirs b/debian/libcmor2.dirs
deleted file mode 100644
index 3266411..0000000
--- a/debian/libcmor2.dirs
+++ /dev/null
@@ -1,2 +0,0 @@
-/usr/share/cmor/Tables
-/usr/share/cmor/Tables_csv
diff --git a/debian/libcmor2.symbols.dont_use b/debian/libcmor2.symbols.dont_use
deleted file mode 100644
index ba77cff..0000000
--- a/debian/libcmor2.symbols.dont_use
+++ /dev/null
@@ -1,292 +0,0 @@
-libcmor.so.2 libcmor2 #MINVER#
- CMOR_2.0.0 at CMOR_2.0.0 2.8.0-3
- CdAddDelTime at CMOR_2.0.0 2.8.0-3
- CdDayOfYear at CMOR_2.0.0 2.8.0-3
- CdDaysInMonth at CMOR_2.0.0 2.8.0-3
- CdDivDelTime at CMOR_2.0.0 2.8.0-3
- CdMonthDay at CMOR_2.0.0 2.8.0-3
- Cdc2e at CMOR_2.0.0 2.8.0-3
- Cdc2h at CMOR_2.0.0 2.8.0-3
- Cde2c at CMOR_2.0.0 2.8.0-3
- Cde2h at CMOR_2.0.0 2.8.0-3
- Cdh2c at CMOR_2.0.0 2.8.0-3
- Cdh2e at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_axis_char at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_axis_double_1 at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_axis_double_2 at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_axis_int_1 at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_axis_int_2 at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_axis_real_1 at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_axis_real_2 at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_close at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_create_output_path at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_dataset at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_1d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_1d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_1d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_2d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_2d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_2d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_3d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_3d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_3d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_4d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_4d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_4d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_5d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_5d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_5d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_6d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_6d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_6d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_7d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_7d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_ftn_map_data_7d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_get_cur_dataset_attribute at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_get_variable_attribute at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_0d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_1d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_1d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_1d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_2d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_2d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_2d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_3d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_3d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_3d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_4d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_4d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_4d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_5d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_5d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_5d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_6d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_6d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_6d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_tvc_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_tvc_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_grid_tvc_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_has_cur_dataset_attribute at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_has_variable_attribute at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_load_table at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_set_cur_dataset_attribute at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_set_grid_mapping at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_set_table at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_set_variable_attribute at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_setup_ints at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_setup_nc_char at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_variable_double at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_variable_int at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_variable_real at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_1d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_1d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_1d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_2d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_2d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_2d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_3d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_3d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_3d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_4d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_4d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_4d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_5d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_5d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_5d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_6d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_6d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_6d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_7d_d at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_7d_i at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_write_7d_r at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_double at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_double_0dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_double_2dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_double_3dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_double_4dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_double_5dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_double_6dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_int at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_int_0dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_int_2dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_int_3dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_int_4dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_int_5dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_int_6dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_novals at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_real at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_real_0dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_real_2dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_real_3dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_real_4dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_real_5dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_cmor_zfactor_real_6dvalues at CMOR_2.0.0 2.8.0-3
- __cmor_users_functions_MOD_similar at CMOR_2.0.0 2.8.0-3
- cmor_add_traceback at CMOR_2.0.0 2.8.0-3
- cmor_attribute_in_list at CMOR_2.0.0 2.8.0-3
- cmor_axes at CMOR_2.0.0 2.8.0-3
- cmor_axis at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_double_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_int_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_long_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_nobnds_char_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_nobnds_double_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_nobnds_int_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_nobnds_long_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_nobnds_real_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_nocoords_ at CMOR_2.0.0 2.8.0-3
- cmor_axis_cff_real_ at CMOR_2.0.0 2.8.0-3
- cmor_calendar_c2i at CMOR_2.0.0 2.8.0-3
- cmor_check_expt_id at CMOR_2.0.0 2.8.0-3
- cmor_check_forcing_validity at CMOR_2.0.0 2.8.0-3
- cmor_check_interval at CMOR_2.0.0 2.8.0-3
- cmor_check_monotonic at CMOR_2.0.0 2.8.0-3
- cmor_check_values_inside_bounds at CMOR_2.0.0 2.8.0-3
- cmor_close at CMOR_2.0.0 2.8.0-3
- cmor_close_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_close_var_fnm_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_close_var_fnm_preserve_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_close_var_nofnm_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_close_var_nofnm_preserve_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_close_variable at CMOR_2.0.0 2.8.0-3
- cmor_convert_char_to_hyphen at CMOR_2.0.0 2.8.0-3
- cmor_convert_interval_to_seconds at CMOR_2.0.0 2.8.0-3
- cmor_convert_string_to_list at CMOR_2.0.0 2.8.0-3
- cmor_convert_time_units at CMOR_2.0.0 2.8.0-3
- cmor_convert_time_values at CMOR_2.0.0 2.8.0-3
- cmor_convert_value at CMOR_2.0.0 2.8.0-3
- cmor_copy_data at CMOR_2.0.0 2.8.0-3
- cmor_create_output_path at CMOR_2.0.0 2.8.0-3
- cmor_create_output_path_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_current_dataset at CMOR_2.0.0 2.8.0-3
- cmor_dataset at CMOR_2.0.0 2.8.0-3
- cmor_dataset_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_dataset_cff_nobrch_ at CMOR_2.0.0 2.8.0-3
- cmor_dataset_cff_null_ at CMOR_2.0.0 2.8.0-3
- cmor_dataset_cff_null_nobrch_ at CMOR_2.0.0 2.8.0-3
- cmor_define_zfactors_vars at CMOR_2.0.0 2.8.0-3
- cmor_flip_hybrid at CMOR_2.0.0 2.8.0-3
- cmor_ftn_get_tlen_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_get_axis_attribute at CMOR_2.0.0 2.8.0-3
- cmor_get_cur_dataset_attribute at CMOR_2.0.0 2.8.0-3
- cmor_get_cur_dset_attribute_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_get_grid_attribute at CMOR_2.0.0 2.8.0-3
- cmor_get_original_shape at CMOR_2.0.0 2.8.0-3
- cmor_get_original_shape_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_get_variable_attribute at CMOR_2.0.0 2.8.0-3
- cmor_get_variable_attribute_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_get_variable_attribute_names at CMOR_2.0.0 2.8.0-3
- cmor_get_variable_attribute_type at CMOR_2.0.0 2.8.0-3
- cmor_get_variable_time_length at CMOR_2.0.0 2.8.0-3
- cmor_grid at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_noarea_double_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_noarea_int_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_noarea_real_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_noblaar_double_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_noblaar_int_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_noblaar_real_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_nobloar_double_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_nobloar_int_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_nobloar_real_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_nocoords_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_nothg_double_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_nothg_int_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_nothg_real_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_tvc_d_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_tvc_f_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_tvc_i_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_cff_tvc_no_ at CMOR_2.0.0 2.8.0-3
- cmor_grid_valid_mapping_attribute_names at CMOR_2.0.0 2.8.0-3
- cmor_grids at CMOR_2.0.0 2.8.0-3
- cmor_handle_error at CMOR_2.0.0 2.8.0-3
- cmor_handle_error_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_has_axis_attribute at CMOR_2.0.0 2.8.0-3
- cmor_has_cur_dataset_attribute at CMOR_2.0.0 2.8.0-3
- cmor_has_cur_dset_attribute_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_has_grid_attribute at CMOR_2.0.0 2.8.0-3
- cmor_has_required_global_attributes at CMOR_2.0.0 2.8.0-3
- cmor_has_required_variable_attributes at CMOR_2.0.0 2.8.0-3
- cmor_has_variable_attribute at CMOR_2.0.0 2.8.0-3
- cmor_has_variable_attribute_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_have_NetCDF363 at CMOR_2.0.0 2.8.0-3
- cmor_have_NetCDF3 at CMOR_2.0.0 2.8.0-3
- cmor_have_NetCDF41min at CMOR_2.0.0 2.8.0-3
- cmor_have_NetCDF4 at CMOR_2.0.0 2.8.0-3
- cmor_init_axis_def at CMOR_2.0.0 2.8.0-3
- cmor_init_grid_mapping at CMOR_2.0.0 2.8.0-3
- cmor_init_table at CMOR_2.0.0 2.8.0-3
- cmor_init_var_def at CMOR_2.0.0 2.8.0-3
- cmor_input_path at CMOR_2.0.0 2.8.0-3
- cmor_is_required_global_attribute at CMOR_2.0.0 2.8.0-3
- cmor_is_required_variable_attribute at CMOR_2.0.0 2.8.0-3
- cmor_is_setup at CMOR_2.0.0 2.8.0-3
- cmor_load_table at CMOR_2.0.0 2.8.0-3
- cmor_load_table_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_md5 at CMOR_2.0.0 2.8.0-3
- cmor_naxes at CMOR_2.0.0 2.8.0-3
- cmor_nerrors at CMOR_2.0.0 2.8.0-3
- cmor_ngrids at CMOR_2.0.0 2.8.0-3
- cmor_ntables at CMOR_2.0.0 2.8.0-3
- cmor_nvars at CMOR_2.0.0 2.8.0-3
- cmor_nwarnings at CMOR_2.0.0 2.8.0-3
- cmor_pop_traceback at CMOR_2.0.0 2.8.0-3
- cmor_prep_units at CMOR_2.0.0 2.8.0-3
- cmor_put_nc_char_attribute at CMOR_2.0.0 2.8.0-3
- cmor_put_nc_num_attribute at CMOR_2.0.0 2.8.0-3
- cmor_reset_variable at CMOR_2.0.0 2.8.0-3
- cmor_set_axis_attribute at CMOR_2.0.0 2.8.0-3
- cmor_set_axis_def_att at CMOR_2.0.0 2.8.0-3
- cmor_set_cur_dataset_attribute at CMOR_2.0.0 2.8.0-3
- cmor_set_cur_dataset_attribute_internal at CMOR_2.0.0 2.8.0-3
- cmor_set_cur_dset_attribute_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_set_dataset_att at CMOR_2.0.0 2.8.0-3
- cmor_set_grd_map_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_set_grid_attribute at CMOR_2.0.0 2.8.0-3
- cmor_set_grid_mapping at CMOR_2.0.0 2.8.0-3
- cmor_set_mapping_attribute at CMOR_2.0.0 2.8.0-3
- cmor_set_table at CMOR_2.0.0 2.8.0-3
- cmor_set_table_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_set_var_def_att at CMOR_2.0.0 2.8.0-3
- cmor_set_variable_attribute at CMOR_2.0.0 2.8.0-3
- cmor_set_variable_attribute_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_set_variable_attribute_internal at CMOR_2.0.0 2.8.0-3
- cmor_setup at CMOR_2.0.0 2.8.0-3
- cmor_setup_cff_ at CMOR_2.0.0 2.8.0-3
- cmor_setup_cff_nolog_ at CMOR_2.0.0 2.8.0-3
- cmor_tables at CMOR_2.0.0 2.8.0-3
- cmor_time_varying_grid_coordinate at CMOR_2.0.0 2.8.0-3
- cmor_traceback_info at CMOR_2.0.0 2.8.0-3
- cmor_treat_axis_values at CMOR_2.0.0 2.8.0-3
- cmor_trim_string at CMOR_2.0.0 2.8.0-3
- cmor_update_history at CMOR_2.0.0 2.8.0-3
- cmor_variable at CMOR_2.0.0 2.8.0-3
- cmor_variable_cff_double_ at CMOR_2.0.0 2.8.0-3
- cmor_variable_cff_int_ at CMOR_2.0.0 2.8.0-3
- cmor_variable_cff_long_ at CMOR_2.0.0 2.8.0-3
- cmor_variable_cff_nomiss_ at CMOR_2.0.0 2.8.0-3
- cmor_variable_cff_real_ at CMOR_2.0.0 2.8.0-3
- cmor_vars at CMOR_2.0.0 2.8.0-3
- cmor_write at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_double_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_double_nobnds_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_double_notime_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_int_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_int_nobnds_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_int_notime_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_long_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_long_nobnds_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_long_notime_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_real_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_real_nobnds_ at CMOR_2.0.0 2.8.0-3
- cmor_write_cff_real_notime_ at CMOR_2.0.0 2.8.0-3
- cmor_write_var_to_file at CMOR_2.0.0 2.8.0-3
- cmor_zfactor at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_double_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_double_nobnds_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_int_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_int_nobnds_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_long_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_long_nobnds_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_novals_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_real_ at CMOR_2.0.0 2.8.0-3
- cmor_zfactor_cff_real_nobnds_ at CMOR_2.0.0 2.8.0-3
diff --git a/debian/patches/clean.patch b/debian/patches/clean.patch
deleted file mode 100644
index 216d492..0000000
--- a/debian/patches/clean.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: clean up more fully.
-Last-Updated: 2010-07-29
-Forwarded: no
-
-Index: cmor-2.0/Makefile.in
-===================================================================
---- cmor-2.0.orig/Makefile.in	2010-07-29 10:38:27.000000000 +0100
-+++ cmor-2.0/Makefile.in	2010-07-29 10:39:28.000000000 +0100
-@@ -28,8 +28,9 @@
- INCFILES = @INCFILES@
- 
- # Temporary Files
--TMPFILES = *~ $(LIBFILES) *.mod a.out *.stb Test/*.nc Test/IPCC_Fourth_Assessment *.LOG* *.dSYM Test/IPCC Test/CMIP5 CMIP5 Tables
--DISTFILES = libcmor.a
-+TMPFILES = *~ $(LIBFILES) *.mod a.out *.stb Test/*.nc Test/IPCC_Fourth_Assessment *.LOG* *.dSYM Test/IPCC Test/CMIP5 CMIP5 Tables \
-+	configure config.sub config.log cmor.pc include/cmor_locale.h
-+DISTFILES = libcmor.a libcmor.so.2
- DEPEND= makedepend -c @DEBUG@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@
- 
- all:    cmor
diff --git a/debian/patches/cmor_ver.patch b/debian/patches/cmor_ver.patch
deleted file mode 100644
index b131788..0000000
--- a/debian/patches/cmor_ver.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Add symbol versioning file.
-Last-Updated: 2013-06-11
-Forwarded: no
-
-Index: cmor-2.9.1/cmor.ver
-===================================================================
---- /dev/null
-+++ cmor-2.9.1/cmor.ver
-@@ -0,0 +1,7 @@
-+CMOR_2.0.0 {
-+        global: 
-+                cmor*;
-+                __cmor_users_functions*;
-+                Cd*;
-+        local: *;
-+};
-Index: cmor-2.9.1/configure.ac
-===================================================================
---- cmor-2.9.1.orig/configure.ac
-+++ cmor-2.9.1/configure.ac
-@@ -23,7 +23,7 @@ esac
- CMOR_VERSION=${PACKAGE_VERSION}" (commit: ${GIT_TAG})"
- 
- AC_PREFIX_DEFAULT([/usr/local/cmor])
--AC_CONFIG_FILES([Makefile setup.py compile_line.txt include/cmor_locale.h])
-+AC_CONFIG_FILES([Makefile setup.py compile_line.txt include/cmor_locale.h cmor.pc])
- 
- INCFILES="include/cmor.h  include/cmor_func_def.h include/cmor_md5.h "`ls -x --width=10000 include/cdTime/*.h include/cdTime/cdunifpp/*.h`
- AC_SUBST(RTAG)
diff --git a/debian/patches/debug-test.patch b/debian/patches/debug-test.patch
deleted file mode 100644
index 587fc91..0000000
--- a/debian/patches/debug-test.patch
+++ /dev/null
@@ -1,5 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Turn on debugging to work out why it FTBFS on kfreebsd-i386, s390.
-Last-Updated: 2010-12-05
-Forwarded: no
-
diff --git a/debian/patches/destdir.patch b/debian/patches/destdir.patch
deleted file mode 100644
index ffa5b7b..0000000
--- a/debian/patches/destdir.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Add DESTDIR support for installing.
-Last-Updated: 2013-06-11
-Forwarded: no
-
-Index: cmor-2.9.1/Makefile.in
-===================================================================
---- cmor-2.9.1.orig/Makefile.in
-+++ cmor-2.9.1/Makefile.in
-@@ -109,17 +109,17 @@ distclean: clean
- 	@echo "Completely cleaning [$(WHEREAMI)]..."
- 	@rm -f $(DISTFILES)
- install: cmor
--	mkdir -p ${PREFIX}/lib
--	mkdir -p ${PREFIX}/include
--	mkdir -p ${PREFIX}/include/cdTime
--	mkdir -p ${PREFIX}/include/cdTime/cdunifpp
--	cp -p $(LIBNAME) ${PREFIX}/lib
--	cp -pr include/*.h @MODFILES@ ${PREFIX}/include
--	cp -pr include/cdTime/*.h ${PREFIX}/include/cdTime
--	cp -pr include/cdTime/cdunifpp/*.h ${PREFIX}/include/cdTime/cdunifpp
--uninstall: distclean 
--	rm ${PREFIX}/lib/$(LIBNAME)    
--	cd ${PREFIX} ; rm $(INCFILES)  
-+	mkdir -p ${DESTDIR}${PREFIX}/lib
-+	mkdir -p ${DESTDIR}${PREFIX}/include
-+	mkdir -p ${DESTDIR}${PREFIX}/include/cdTime
-+	mkdir -p ${DESTDIR}${PREFIX}/include/cdTime/cdunifpp
-+	cp -p $(LIBNAME) ${DESTDIR}${PREFIX}/lib
-+	cp -pr include/*.h @MODFILES@ ${DESTDIR}${PREFIX}/include
-+	cp -pr include/cdTime/*.h ${DESTDIR}${PREFIX}/include/cdTime
-+	cp -pr include/cdTime/cdunifpp/*.h ${DESTDIR}${PREFIX}/include/cdTime/cdunifpp
-+uninstall: distclean
-+	rm ${DESTDIR}${PREFIX}/lib/$(LIBNAME)
-+	cd ${DESTDIR}${PREFIX} ; rm $(INCFILES)
- backup: clean
- 	@echo "Creating full backup tar file..."
- 	@(cd ..; \
-@@ -136,7 +136,7 @@ test_C: cmor  Tables
- 	@rm -f test_cat_unique ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_unit_cat_unique.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@ -o test_unit_cat_unique @VERB@; ./test_unit_cat_unique @VERB@;
- python:
- 	@echo "Building Python interface"
--	@${PYTHONEXEC} setup.py install @CDATPREFIX@
-+	@${PYTHONEXEC} setup.py install --prefix=${DESTDIR}${PREFIX}
- test_a_python:
- 	@echo "${OK_COLOR}Testing ${TEST_NAME} ${NO_COLOR}"
- 	${PYTHONEXEC} ${TEST_NAME} ${VERB}
diff --git a/debian/patches/explicit-tests.patch b/debian/patches/explicit-tests.patch
deleted file mode 100644
index dffbf01..0000000
--- a/debian/patches/explicit-tests.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Be more explicit in what is being run during tests. Useful in debugging failures on buildds in debian.
-Last-Updated: 2010-10-13
-Forwarded: no
-
-Index: cmor/Makefile.in
-===================================================================
---- cmor.orig/Makefile.in	2010-10-12 00:45:29.000000000 +0100
-+++ cmor/Makefile.in	2010-10-12 00:46:56.000000000 +0100
-@@ -112,136 +112,136 @@
- Tables: TestTables
- 	ln -sf TestTables Tables
- test_C: cmor 
--	@rm -f ./ipcc_test_code ; @CC@ @CPPFLAGS@ @CFLAGS@  Test/ipcc_test_code.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o ipcc_test_code  @VERB@; ./ipcc_test_code @VERB@
--	@rm -f test_grid ; @CC@ @CPPFLAGS@ @CFLAGS@ @CPPFLAGS@  Test/test_grid.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_grid @VERB@; ./test_grid @VERB@;
--	@rm -f test_lots_of_variables ; @CC@ @CPPFLAGS@ @CFLAGS@ @CPPFLAGS@  Test/test_lots_of_variables.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_lots_of_variables @VERB@; ./test_lots_of_variables @VERB@;
-+	rm -f ./ipcc_test_code ; @CC@ @CPPFLAGS@ @CFLAGS@  Test/ipcc_test_code.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o ipcc_test_code  @VERB@; ./ipcc_test_code @VERB@
-+	rm -f test_grid ; @CC@ @CPPFLAGS@ @CFLAGS@ @CPPFLAGS@  Test/test_grid.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_grid @VERB@; ./test_grid @VERB@;
-+	rm -f test_lots_of_variables ; @CC@ @CPPFLAGS@ @CFLAGS@ @CPPFLAGS@  Test/test_lots_of_variables.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_lots_of_variables @VERB@; ./test_lots_of_variables @VERB@;
- python:
- 	@echo "Building Python interface"
--	@${PYTHONEXEC} setup.py install @CDATPREFIX@
-+	${PYTHONEXEC} setup.py install @CDATPREFIX@
- test_a_python:
- 	@echo "${OK_COLOR}Testing ${TEST_NAME} ${NO_COLOR}"
- 	${PYTHONEXEC} ${TEST_NAME} @VERB@
- test_python: python
--	@env TEST_NAME=Test/test_python_direct_calls.py make test_a_python
--	@env TEST_NAME=Test/test_python_user_interface_00.py make test_a_python
--	@env TEST_NAME=Test/test_python_user_interface_01.py make test_a_python
--	@env TEST_NAME=Test/test_python_user_interface_03.py make test_a_python
--	@env TEST_NAME=Test/test_python_common.py make test_a_python
--	@env TEST_NAME=Test/cmor_speed_and_compression.py make test_a_python
--	@env TEST_NAME=Test/cmor_speed_and_compression_01.py make test_a_python
--#	@env TEST_NAME=Test/cmor_speed_and_compression_02.py make test_a_python
--	@env TEST_NAME=Test/test_compression.py make test_a_python
--	@env TEST_NAME=Test/test_python_appending.py make test_a_python
--	@env TEST_NAME=Test/test_python_bounds_request.py make test_a_python
--	@env TEST_NAME=Test/test_python_new_tables.py make test_a_python
--#	@env TEST_NAME=Test/test_python_index_coord.py make test_a_python
--	@env TEST_NAME=Test/test_python_jamie.py make test_a_python
--	@env TEST_NAME=Test/test_python_jamie_2.py make test_a_python
--	@env TEST_NAME=Test/test_python_jamie_3.py make test_a_python
--	@env TEST_NAME=Test/test_python_jamie_4.py make test_a_python
--	@env TEST_NAME=Test/test_python_jamie_6.py make test_a_python
--	@env TEST_NAME=Test/test_python_memory_check.py make test_a_python
--	@env TEST_NAME=Test/test_python_open_close_cmor_multiple.py make test_a_python
--	@env TEST_NAME=Test/test_python_jamie_7.py make test_a_python
--	@env TEST_NAME=Test/test_python_joerg_1.py make test_a_python
--	@env TEST_NAME=Test/test_python_joerg_2.py make test_a_python
--	@env TEST_NAME=Test/test_python_joerg_3.py make test_a_python
--	@env TEST_NAME=Test/test_python_YYYMMDDHH_exp_fmt.py make test_a_python
--	@env TEST_NAME=Test/test_python_region.py make test_a_python
-+	env TEST_NAME=Test/test_python_direct_calls.py make test_a_python
-+	env TEST_NAME=Test/test_python_user_interface_00.py make test_a_python
-+	env TEST_NAME=Test/test_python_user_interface_01.py make test_a_python
-+	env TEST_NAME=Test/test_python_user_interface_03.py make test_a_python
-+	env TEST_NAME=Test/test_python_common.py make test_a_python
-+	env TEST_NAME=Test/cmor_speed_and_compression.py make test_a_python
-+	env TEST_NAME=Test/cmor_speed_and_compression_01.py make test_a_python
-+#	env TEST_NAME=Test/cmor_speed_and_compression_02.py make test_a_python
-+	env TEST_NAME=Test/test_compression.py make test_a_python
-+	env TEST_NAME=Test/test_python_appending.py make test_a_python
-+	env TEST_NAME=Test/test_python_bounds_request.py make test_a_python
-+	env TEST_NAME=Test/test_python_new_tables.py make test_a_python
-+#	env TEST_NAME=Test/test_python_index_coord.py make test_a_python
-+	env TEST_NAME=Test/test_python_jamie.py make test_a_python
-+	env TEST_NAME=Test/test_python_jamie_2.py make test_a_python
-+	env TEST_NAME=Test/test_python_jamie_3.py make test_a_python
-+	env TEST_NAME=Test/test_python_jamie_4.py make test_a_python
-+	env TEST_NAME=Test/test_python_jamie_6.py make test_a_python
-+	env TEST_NAME=Test/test_python_memory_check.py make test_a_python
-+	env TEST_NAME=Test/test_python_open_close_cmor_multiple.py make test_a_python
-+	env TEST_NAME=Test/test_python_jamie_7.py make test_a_python
-+	env TEST_NAME=Test/test_python_joerg_1.py make test_a_python
-+	env TEST_NAME=Test/test_python_joerg_2.py make test_a_python
-+	env TEST_NAME=Test/test_python_joerg_3.py make test_a_python
-+	env TEST_NAME=Test/test_python_YYYMMDDHH_exp_fmt.py make test_a_python
-+	env TEST_NAME=Test/test_python_region.py make test_a_python
- 
- test_case:
- 	@echo "${OK_COLOR}Testing: "${TEST_NAME}" with input file: ${INPUT_FILE}${NO_COLOR}"
--	@rm -f ./${TEST_NAME} 2>/dev/null ; @FC@ @FCFLAGS@ @DEBUG@  Test/${TEST_NAME}.f90 -L at prefix@/lib -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZFLAGS@ @ZLDFLAGS@ -o ${TEST_NAME} ;
--	@./${TEST_NAME} @VERB@ < ${INPUT_FILE} ;
--	@ rm ./${TEST_NAME}
-+	rm -f ./${TEST_NAME} 2>/dev/null ; @FC@ @FCFLAGS@ @DEBUG@  Test/${TEST_NAME}.f90 -L at prefix@/lib -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZFLAGS@ @ZLDFLAGS@ -o ${TEST_NAME} ;
-+	./${TEST_NAME} @VERB@ < ${INPUT_FILE} ;
-+	 rm ./${TEST_NAME}
- ifeq (@MAKEDEPPYTHON@,python)
--	@env TEST_NAME="Test/check_results.py ${TEST_NAME}" make test_a_python
-+	env TEST_NAME="Test/check_results.py ${TEST_NAME}" make test_a_python
- endif
- test_case_old_cmor_tables:
- 	@echo "Testing: "${TEST_NAME}" with input file: "${INPUT_FILE}
--	@rm -f ./${TEST_NAME} 2>/dev/null ; @FC@ @FCFLAGS@ @DEBUG@  Test/old_cmor_tables/${TEST_NAME}.f90 -L at prefix@/lib -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZFLAGS@ @ZLDFLAGS@ -o ${TEST_NAME} ;
--	@./${TEST_NAME} @VERB@ < ${INPUT_FILE} ;
--	@ rm ./${TEST_NAME}
-+	rm -f ./${TEST_NAME} 2>/dev/null ; @FC@ @FCFLAGS@ @DEBUG@  Test/old_cmor_tables/${TEST_NAME}.f90 -L at prefix@/lib -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZFLAGS@ @ZLDFLAGS@ -o ${TEST_NAME} ;
-+	./${TEST_NAME} @VERB@ < ${INPUT_FILE} ;
-+	 rm ./${TEST_NAME}
- ifeq (@MAKEDEPPYTHON@,python)
--	@env TEST_NAME="Test/check_results.py old_cmor_tables_${TEST_NAME}" make test_a_python
-+	env TEST_NAME="Test/check_results.py old_cmor_tables_${TEST_NAME}" make test_a_python
- endif
- test_fortran_old_cmor_tables: cmor
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy.input" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case_old_cmor_tables
--	@env TEST_NAME="karls_test" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test1" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test2" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test3" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test4" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="main_prog" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_any_from_asc_i" INPUT_FILE="Test/tas_mytest_3d_i.input" make test_case_old_cmor_tables
--	@env TEST_NAME="mytest_4d_r" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="rewrite_harvardf_data" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_3h" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_dimensionless" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_fortran_example_00" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_fortran_example_01" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_station_data" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_region" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_sigma" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_singleton" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="mytest_4d_r_big_array" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="mytest_4d_d_big_array_3" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="mytest_4d_d_big_array_4" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="mytest_4d_d_big_array_5" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="climatology_test_code" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_shrt_exp_nm_set_att_initi" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--	@env TEST_NAME="test_sophie" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy.input" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case_old_cmor_tables
-+	env TEST_NAME="karls_test" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test1" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test2" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test3" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test4" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="main_prog" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_any_from_asc_i" INPUT_FILE="Test/tas_mytest_3d_i.input" make test_case_old_cmor_tables
-+	env TEST_NAME="mytest_4d_r" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="rewrite_harvardf_data" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_3h" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_dimensionless" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_fortran_example_00" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_fortran_example_01" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_station_data" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_region" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_sigma" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_singleton" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="mytest_4d_r_big_array" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="mytest_4d_d_big_array_3" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="mytest_4d_d_big_array_4" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="mytest_4d_d_big_array_5" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="climatology_test_code" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_shrt_exp_nm_set_att_initi" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-+	env TEST_NAME="test_sophie" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
- test_fortran: cmor
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case
--	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy.input" make test_case
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case
--	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case
--	@env TEST_NAME="karls_test" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test1" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test2" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test3" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test4" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="main_prog" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_any_from_asc_i" INPUT_FILE="Test/tas_mytest_3d_i.input" make test_case
--	@env TEST_NAME="mytest_4d_r" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="rewrite_harvardf_data" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_3h" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_dimensionless" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_fortran_example_00" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_fortran_example_01" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_station_data" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro.txt" make test_case
--	@env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro_1.txt" make test_case
--	@env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro_2.txt" make test_case
--	@env TEST_NAME="test_region" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_sigma" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_singleton" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="mytest_4d_r_big_array" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="mytest_4d_d_big_array_3" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="mytest_4d_d_big_array_4" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="mytest_4d_d_big_array_5" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="climatology_test_code" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_shrt_exp_nm_set_att_initi" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_sophie" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="ipcc_test_code" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case
-+	env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy.input" make test_case
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case
-+	env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case
-+	env TEST_NAME="karls_test" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test1" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test2" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test3" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test4" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="main_prog" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_any_from_asc_i" INPUT_FILE="Test/tas_mytest_3d_i.input" make test_case
-+	env TEST_NAME="mytest_4d_r" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="rewrite_harvardf_data" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_3h" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_dimensionless" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_fortran_example_00" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_fortran_example_01" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_station_data" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro.txt" make test_case
-+	env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro_1.txt" make test_case
-+	env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro_2.txt" make test_case
-+	env TEST_NAME="test_region" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_sigma" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_singleton" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="mytest_4d_r_big_array" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="mytest_4d_d_big_array_3" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="mytest_4d_d_big_array_4" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="mytest_4d_d_big_array_5" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="climatology_test_code" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_shrt_exp_nm_set_att_initi" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_sophie" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="ipcc_test_code" INPUT_FILE="Test/noinput" make test_case
- atest: cmor
- #	@env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case
--	@env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case
-+	env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case
- #	@env TEST_NAME="wegner_test" INPUT_FILE="Test/noinput" make test_case
- 
- 
diff --git a/debian/patches/fix-makefile.patch b/debian/patches/fix-makefile.patch
deleted file mode 100644
index f0df3d1..0000000
--- a/debian/patches/fix-makefile.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: cmor-2.9.1/Makefile.in
-===================================================================
---- cmor-2.9.1.orig/Makefile.in
-+++ cmor-2.9.1/Makefile.in
-@@ -174,8 +174,8 @@ test_python: python
- 	@env TEST_NAME=Test/test_python_joerg_8.py make test_a_python
- #	@env TEST_NAME=Test/test_python_joerg_9.py make test_a_python
- 	@env TEST_NAME=Test/test_python_joerg_10.py make test_a_python
--        @env TEST_NAME=Test/test_python_joerg_11.py make test_a_python
--        @env TEST_NAME=Test/test_python_joerg_12.py make test_a_python
-+	@env TEST_NAME=Test/test_python_joerg_11.py make test_a_python
-+	@env TEST_NAME=Test/test_python_joerg_12.py make test_a_python
- 	@env TEST_NAME=Test/test_python_YYYMMDDHH_exp_fmt.py make test_a_python
- 	@env TEST_NAME=Test/test_python_region.py make test_a_python
- 	@env TEST_NAME=Test/jamie_hybrid_height.py make test_a_python
diff --git a/debian/patches/ld-no-add-needed.patch b/debian/patches/ld-no-add-needed.patch
deleted file mode 100644
index 56cb604..0000000
--- a/debian/patches/ld-no-add-needed.patch
+++ /dev/null
@@ -1,7 +0,0 @@
-Description: Fix ld --as-needed failure to build
-Origin: Ubuntu, Matthias Klose.
-Bug-Debian: http://bugs.debian.org/606210
-Forwarded: no
-Reviewed-By: Alastair McKinstry <mckinstry at debian.org>
-Last-Update: 2010-12-07:wq
-
diff --git a/debian/patches/makefile-fix.patch b/debian/patches/makefile-fix.patch
deleted file mode 100644
index 30a801e..0000000
--- a/debian/patches/makefile-fix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Need to ensure Tables is made before test_fortran is run
-Last-Updated: 2010-10-26
-Forwarded: no
-
-Index: cmor-2.9.1/Makefile.in
-===================================================================
---- cmor-2.9.1.orig/Makefile.in
-+++ cmor-2.9.1/Makefile.in
-@@ -129,7 +129,7 @@ backup: clean
- 	@echo "Full backup tar file created : $$TGZNAME")
- test:  cmor test_C @TEST_FORTRAN@ @MAKETESTPYTHON@
- 	@echo "All C and Fortran Test passed successfully"
--test_C: cmor 
-+test_C: cmor  Tables
- 	rm -f ./ipcc_test_code ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/ipcc_test_code.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@  -o ipcc_test_code  @VERB@; ./ipcc_test_code @VERB@
- 	@rm -f test_grid ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_grid.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_grid @LDFLAGS@ @VERB@; ./test_grid @VERB@;
- 	@rm -f test_lots_of_variables ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_lots_of_variables.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@ -o test_lots_of_variables @VERB@; ./test_lots_of_variables @VERB@;
-@@ -215,7 +215,7 @@ test_case_old_cmor_tables:
- ifeq (@MAKEDEPPYTHON@,python)
- 	@env TEST_NAME="Test/check_results.py old_cmor_tables_${TEST_NAME}" make test_a_python
- endif
--test_fortran_old_cmor_tables: cmor
-+test_fortran_old_cmor_tables: cmor Tables
- 	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case_old_cmor_tables
- 	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case_old_cmor_tables
- 	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case_old_cmor_tables
-@@ -250,7 +250,7 @@ test_fortran_old_cmor_tables: cmor
- 	@env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
- 	@env TEST_NAME="test_shrt_exp_nm_set_att_initi" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
- 	@env TEST_NAME="test_sophie" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
--test_fortran: cmor
-+test_fortran: cmor Tables
- 	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case
- 	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case
- 	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case
diff --git a/debian/patches/ncldflags.patch b/debian/patches/ncldflags.patch
deleted file mode 100644
index 1e530e6..0000000
--- a/debian/patches/ncldflags.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748947
-Description: Add support for ${EXTRA_NCLDFLAGS}, needed for ppc64el
-Forwarded: no
-Last-Updated: 2014-07-11
-
-Index: cmor-2.9.1/configure.ac
-===================================================================
---- cmor-2.9.1.orig/configure.ac
-+++ cmor-2.9.1/configure.ac
-@@ -217,27 +217,27 @@ if [ test ${with_netcdfb} != "-yes" ]; t
-     AC_CHECK_FILE([${with_netcdf}/bin/nc-config],[HAS_NCCONFIG=yes],[HAS_NCCONFIG=no])
-     if [ test ${HAS_NCCONFIG} == "yes" ] ; then 
-       NCCFLAGS=`${with_netcdf}/bin/nc-config --cflags`
--      NCLDFLAGS=`${with_netcdf}/bin/nc-config --libs`
-+      NCLDFLAGS="`${with_netcdf}/bin/nc-config --libs` ${EXTRA_NCLDFLAGS}"
-     else 
-      NCCFLAGS=" -I${with_netcdf}/include"
-      if [ test ${RTAG} != "none" ] ; then
-       NCLDFLAGS=" -L${with_netcdf}/lib  ${RTAG}${with_netcdf}/lib -lnetcdf"
-      else
--      NCLDFLAGS=" -L${with_netcdf}/lib -lnetcdf"
-+      NCLDFLAGS=" -L${with_netcdf}/lib -lnetcdf ${EXTRA_NCLDFLAGS}"
-      fi
-     fi
-   else
-     NCCFLAGS="-lnetcdf"
--    NCLDFLAGS=""
-+    NCLDFLAGS="${EXTRA_NCLDFLAGS}"
-   fi
- else
-   AC_PATH_PROG(NCCONFIG,nc-config,"no")
-   if [ test NCCONFIG != "no" ] ; then
-    NCCFLAGS=`${NCCONFIG} --cflags`
--   NCLDFLAGS=`${NCCONFIG} --libs`
-+   NCLDFLAGS="`${NCCONFIG} --libs` ${EXTRA_NCLDFLAGS}"
-   else
-    NCCFLAGS="-lnetcdf"
--   NCLDFLAGS=""
-+   NCLDFLAGS="${EXTRA_NCLDFLAGS}"
-   fi
- fi
- 
diff --git a/debian/patches/pkgconfig.patch b/debian/patches/pkgconfig.patch
deleted file mode 100644
index 181e2a4..0000000
--- a/debian/patches/pkgconfig.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Add FFlags, includedir, fix for directories needed for C; 
-Last-Updated: 2013-06-10
-Forwarded: no
-
-Index: cmor-2.8.3/cmor.pc.in
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ cmor-2.8.3/cmor.pc.in	2013-06-10 18:45:57.000000000 +0100
-@@ -0,0 +1,13 @@
-+prefix=@prefix@
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+fflags=-I${includedir}
-+
-+Name: cmor
-+Description: Climate Model Output Rewriter library
-+Version: @PACKAGE_VERSION@
-+Libs:  -L${libdir} -lcmor
-+CFlags: -I${prefix}/include 
-+CFlags: -I${includedir} -I${includedir}/cdTime
-+Requires:  udunits netcdf ossp-uuid
-Index: cmor-2.8.3/configure.ac
-===================================================================
---- cmor-2.8.3.orig/configure.ac	2013-06-10 18:45:57.000000000 +0100
-+++ cmor-2.8.3/configure.ac	2013-06-10 18:45:57.000000000 +0100
-@@ -178,7 +178,7 @@
-     UUIDFLAGS=""
-   fi
- else
--  UUIDLDFLAGS="-luuid"
-+  UUIDLDFLAGS="-lossp-uuid"
-   UUIDFLAGS=""
- fi
- AC_CHECK_LIB([uuid],[uuid_create],[],[AC_ERROR([Could not get a working uuid])],[ ${UUIDFLAGS} ${UUIDLDFLAGS}  ])
diff --git a/debian/patches/python3.patch b/debian/patches/python3.patch
deleted file mode 100644
index 90a9ce2..0000000
--- a/debian/patches/python3.patch
+++ /dev/null
@@ -1,3322 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Fixes needed to make code python2/3 compatible. NOTE: INCOMPLETE
-Last-Updated: 2013-06-12
-Forwarded: no
-
-Index: cmor-2.8.3/Lib/git2svn.py
-===================================================================
---- cmor-2.8.3.orig/Lib/git2svn.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Lib/git2svn.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import os,sys
- 
- svn=sys.argv[1]
-@@ -17,15 +18,15 @@
- 
- for f in modfiles+newfiles:
-     cmd = "cp -pf %s %s/%s" % (f,svn,f)
--    print 'Cp:',cmd
-+    print('Cp:',cmd)
-     os.popen(cmd).readlines()
- 
- for f in newfiles:
-     cmd = "cd %s ; svn add %s" % (svn,f)
--    print 'svn add :',cmd
-+    print('svn add :',cmd)
-     os.popen(cmd).readlines()
- 
- for f in delfiles:
-     cmd = "cd %s ; svn delete --force %s" % (svn,f)
--    print 'svn del :',cmd
-+    print('svn del :',cmd)
-     os.popen(cmd).readlines()
-Index: cmor-2.8.3/Lib/pywrapper.py
-===================================================================
---- cmor-2.8.3.orig/Lib/pywrapper.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Lib/pywrapper.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
--
--import cmor_const,numpy,os,_cmor
-+from . import cmor_const,_cmor
-+import numpy,os
- 
- try:
-     import cdtime
-@@ -37,25 +37,25 @@
-     missing_value : scalar that is used to indicate missing data for this variable.  It must be the same type as the data that will be passed to cmor_write.  This missing_value will in general be replaced by a standard missing_value specified in the MIP table.  If there are no missing data, and the user chooses not to declare the missing value, then this argument may be either omitted or assigned the value 'none' (i.e., missing_value='none').
-     """
-     if not isinstance(table_entry,str):
--        raise Exception, "Error you must pass a string for the variable table_entry"
-+        raise Exception("Error you must pass a string for the variable table_entry")
-     
-     if not isinstance(units,str):
--        raise Exception, "Error you must pass a string for the variable units"
-+        raise Exception("Error you must pass a string for the variable units")
-     if not isinstance(type,str):
--        raise Exception, "error tpye must a a string"
-+        raise Exception("error tpye must a a string")
-     type = type.lower()
-     if type == 's':
-         type ='c'
-     if not type in ["c","d","f","l","i"]:
--        raise Exception, 'error unknown type: "%s", must be one of: "c","d","f","l","i"'
-+        raise Exception('error unknown type: "%s", must be one of: "c","d","f","l","i"')
- 
-     if not isinstance(grid_id,(int,numpy.int,numpy.int32)):
--        raise Exception, "error grid_id must be an integer"
-+        raise Exception("error grid_id must be an integer")
-     grid_id = int(grid_id)
- 
-     if missing_value is not None:
-         if not isinstance(missing_value,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
--            raise Exception, "error missing_value must be a number, you passed: %s" % type(missing_value)
-+            raise Exception("error missing_value must be a number, you passed: %s" % type(missing_value))
-         missing_value = float(missing_value)
-         
-     return _cmor.time_varying_grid_coordinate(grid_id,table_entry,units,type,missing_value)
-@@ -68,7 +68,7 @@
-         try:
-             vals = numpy.ascontiguousarray(vals.filled())
-         except:
--            raise Exception, "Error could not convert %s to a numpy array" % message
-+            raise Exception("Error could not convert %s to a numpy array" % message)
-         
-     return vals
- 
-@@ -92,32 +92,32 @@
-     elif isinstance(axis_ids,(list,tuple)):
-         axis_ids = numpy.ascontiguousarray(axis_ids)
-     elif not isinstance(axis_ids, numpy.ndarray):
--        raise Exception, "Error could not convert axis_ids list to a numpy array"
-+        raise Exception("Error could not convert axis_ids list to a numpy array")
- 
-     if numpy.rank(axis_ids)>1:
--        raise Exception, "error axes list/array must be 1D"
-+        raise Exception("error axes list/array must be 1D")
- 
-     if latitude is not None:
-         latitude = _to_numpy(latitude, 'latitude')
-             
-         if numpy.rank(latitude)!=len(axis_ids):
--            raise Exception, "latitude's rank does not match number of axes passed via axis_ids"
-+            raise Exception("latitude's rank does not match number of axes passed via axis_ids")
- 
-         type = latitude.dtype.char
-         nvert = 0
-         if not type in ['d','f','i','l']:
--            raise Exception, "latitude array must be of type 'd','f','l' or 'i'"
-+            raise Exception("latitude array must be of type 'd','f','l' or 'i'")
- 
-         longitude = _to_numpy(longitude, 'longitude')
- 
-         if numpy.rank(longitude)!=len(axis_ids):
--            raise Exception, "longitude's rank does not match number of axes passed via axis_ids"
-+            raise Exception("longitude's rank does not match number of axes passed via axis_ids")
-         
--    ##     print 'longitude type:',longitude.dtype.char
-+    ##     print('longitude type:',longitude.dtype.char)
-         if longitude.dtype.char!=type:
-             longitude = longitude.astype(type)
-     elif longitude is not None:
--        raise Exception, "latitude and longitude must be BOTH an array or None"
-+        raise Exception("latitude and longitude must be BOTH an array or None")
-     else:
-         type='f'
-         if nvertices is None :
-@@ -129,19 +129,19 @@
-         latitude_vertices = _to_numpy(latitude_vertices, 'latitude_vertices')
- 
-         if numpy.rank(latitude_vertices)!=len(axis_ids)+1:
--            raise Exception, "latitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)"
--##         print 'latitude_vert type:',latitude_vertices.dtype.char
-+            raise Exception("latitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)")
-+##         print('latitude_vert type:',latitude_vertices.dtype.char)
-         if latitude_vertices.dtype.char!=type:
-             latitude_vertices = latitude_vertices.astype(type)
-         nvert = latitude_vertices.shape[-1]
-         if nvertices is not None:
-             if nvert!=nvertices:
--                raise Exception,"you passed nvertices as: %i, but from your latitude_vertices it seems to be: %i" % (nvertices,nvert)
-+                raise Exception("you passed nvertices as: %i, but from your latitude_vertices it seems to be: %i" % (nvertices,nvert))
-         
-     if longitude_vertices is not None:
-         longitude_vertices = _to_numpy(longitude_vertices, 'longitude_vertices')
-         if numpy.rank(longitude_vertices)!=len(axis_ids)+1:
--            raise Exception, "longitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)"
-+            raise Exception("longitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)")
- ##         print 'longitude_vert type:',longitude_vertices.dtype.char
-         if longitude_vertices.dtype.char!=type:
-             longitude_vertices = longitude_vertices.astype(type)
-@@ -149,10 +149,10 @@
-         if latitude_vertices is None:
-             nvert = nvert2
-         elif nvert!=nvert2:
--            raise Exception, "error in shape longitude_vertices and latitude_vertices seem to have different # of vertices: %i vs %i, %s" % (nvert,nvert2, str(longitude_vertices.shape ))
-+            raise Exception("error in shape longitude_vertices and latitude_vertices seem to have different # of vertices: %i vs %i, %s" % (nvert,nvert2, str(longitude_vertices.shape )))
-         if nvertices is not None:
-             if nvert!=nvertices:
--                raise Exception,"you passed nvertices as: %i, but from your longitude_vertices it seems to be: %i" % (nvertices,nvert)
-+                raise Exception("you passed nvertices as: %i, but from your longitude_vertices it seems to be: %i" % (nvertices,nvert))
- 
-         
- ##     if area is not None:
-@@ -160,9 +160,9 @@
- ##             try:
- ##                 area = numpy.ascontiguousarray(area.filled())
- ##             except:
--##                 raise Exception, "Error could not convert area to a numpy array"
-+##                 raise Exception("Error could not convert area to a numpy array")
- ##             if numpy.rank(area)!=len(axis_ids):
--##                 raise Exception, "area's rank does not match number of axes passed via axis_ids"
-+##                 raise Exception("area's rank does not match number of axes passed via axis_ids")
- ##         if area.dtype.char!=type:
- ##             area = area.astype(type)
-     n = len(axis_ids)
-@@ -181,27 +181,31 @@
-        parameter_values :: array/list of parameter values in the same order of parameter_names (ignored if parameter_names is ditcionary)
-        parameter_units  :: array/list of parameter units  in the same order of parameter_names (ignored if parameter_names is ditcionary)
-     """
--    if not isinstance(grid_id,(numpy.int32,int,long)):
--        raise Exception, "grid_id must be an integer: %s"%type(grid_id)
-+    try:
-+        if not isinstance(grid_id,(numpy.int32,int,long)):
-+            raise Exception("grid_id must be an integer: %s"%type(grid_id))
-+    except NameError:
-+        if not isinstance(grid_id,(numpy.int32,int)):
-+            raise Exception("grid_id must be an integer: %s"%type(grid_id))
-     if not isinstance(mapping_name,str):
--        raise Exception, "mapping name must be a string"
-+        raise Exception("mapping name must be a string")
- 
-     if isinstance(parameter_names,dict):
-         pnams = []
-         pvals = []
-         punit = []
--        for k in parameter_names.keys():
-+        for k in list(parameter_names.keys()):
-             pnams.append(k)
-             val = parameter_names[k]
-             if isinstance(val,dict):
--                ks = val.keys()
-+                ks = list(val.keys())
-                 if not 'value' in ks or not 'units' in ks:
--                    raise Exception, "error parameter_names key '%s' dictionary does not contain both 'units' and 'value' keys" % k
-+                    raise Exception("error parameter_names key '%s' dictionary does not contain both 'units' and 'value' keys" % k)
-                 pvals.append(val['value'])
-                 punit.append(val['units'])
-             elif isinstance(val,(list,tuple)):
-                 if len(val)>2:
--                    raise Exception, "parameter_names '%s' as more than 2 values" % k
-+                    raise Exception("parameter_names '%s' as more than 2 values" % k)
-                 for v in val:
-                     if isinstance(v,str):
-                         punit.append(v)
-@@ -210,20 +214,20 @@
-                     except:
-                         pass
-                 if len(pvals)!=len(punits) or len(pvals)!=len(pnams):
--                    raise Exception, "could not figure out values for parameter_name: '%s' " % k
-+                    raise Exception("could not figure out values for parameter_name: '%s' " % k)
-             else:
--                raise Exception, "could not figure out values for parameter_name: '%s' " % k
-+                raise Exception("could not figure out values for parameter_name: '%s' " % k)
-     elif isinstance(parameter_names,(list,tuple)):
-         pnms = list(parameter_names)
-         # now do code for parameter_units
-         if parameter_values is None:
--            raise Exception, "you must pass a list or array for parameter_values"
-+            raise Exception("you must pass a list or array for parameter_values")
-         if parameter_units is None:
--            raise Exception, "you must pass a list for parameter_units"
-+            raise Exception("you must pass a list for parameter_units")
-         if not isinstance(parameter_units,(list,tuple)):
--            raise Exception, "you must pass a list for parameter_units"
-+            raise Exception("you must pass a list for parameter_units")
-         if len(parameter_units)!=len(pnms):
--            raise Exception, "length of parameter_units list does not match length of parameter_names"
-+            raise Exception("length of parameter_units list does not match length of parameter_names")
-         punit = list(parameter_units)
-         if isinstance(parameter_values,(list,tuple)):
-             pvals = list(parameter_values)
-@@ -231,11 +235,11 @@
-             try:
-                 pvals = numpy.ascontiguousarray(parameter_values.filled())
-             except:
--                raise Exception, "Error could not convert parameter_values to a numpy array"
-+                raise Exception("Error could not convert parameter_values to a numpy array")
-         if len(pvals) != len(parameter_names):
--            raise Exception, "length of parameter_values list does not match length of parameter_names"
-+            raise Exception("length of parameter_values list does not match length of parameter_names")
-     else:
--        raise Exception, "parameter_names must be either dictionary or list"
-+        raise Exception("parameter_names must be either dictionary or list")
- 
-     pvals = numpy.ascontiguousarray(pvals).astype('d')
-     return _cmor.set_grid_mapping(grid_id,mapping_name,pnms,pvals,punit)
-@@ -255,11 +259,11 @@
-     interval: a string used for time axes only (???)
-     """
-     if not isinstance(table_entry,str):
--        raise Exception, "You need to pass a table_entry to match in the cmor table"
-+        raise Exception("You need to pass a table_entry to match in the cmor table")
- 
-     if coord_vals is None:
-         if cell_bounds is not None:
--            raise Exception, "you passed cell_bounds but no coords"
-+            raise Exception("you passed cell_bounds but no coords")
-     else:
-         if has_cdms2 and isinstance(coord_vals,cdms2.axis.TransientAxis):
-             if units is None:
-@@ -286,10 +290,10 @@
-             coord_vals = numpy.ascontiguousarray(coord_vals.filled())
- 
-         if not isinstance(coord_vals,numpy.ndarray):
--            raise Exception, "Error coord_vals must be an array or cdms2 axis or list/tuple"
-+            raise Exception("Error coord_vals must be an array or cdms2 axis or list/tuple")
- 
-         if numpy.rank(coord_vals)>1:
--            raise Exception, "Error, you must pass a 1D array!"
-+            raise Exception("Error, you must pass a 1D array!")
- 
-     if numpy.ma.isMA(cell_bounds):
-         cell_bounds = numpy.ascontiguousarray(cell_bounds.filled())
-@@ -304,18 +308,18 @@
-         
-     if cell_bounds is not None:
-         if numpy.rank(cell_bounds)>2:
--            raise Exception, "Error cell_bounds rank must be at most 2"
-+            raise Exception("Error cell_bounds rank must be at most 2")
-         if numpy.rank(cell_bounds)==2:
-             if cell_bounds.shape[0]!=coord_vals.shape[0]:
--                raise Exception, "Error, coord_vals and cell_bounds do not have the same length"
-+                raise Exception("Error, coord_vals and cell_bounds do not have the same length")
-             if cell_bounds.shape[1]!=2:
--                raise Exception, "Error, cell_bounds' second dimension must be of length 2"
-+                raise Exception("Error, cell_bounds' second dimension must be of length 2")
-             cbnds = 2
-             cell_bounds = numpy.ascontiguousarray(numpy.ravel(cell_bounds))
-         else:
-             cbnds = 1
-             if len(cell_bounds)!=len(coord_vals)+1:
--                raise Exception, "error cell_bounds are %i long and axes coord_vals are %i long this is not consistent" % (len(cell_bounds),len(coord_vals))
-+                raise Exception("error cell_bounds are %i long and axes coord_vals are %i long this is not consistent" % (len(cell_bounds),len(coord_vals)))
-     else:
-         cbnds = 0
- 
-@@ -324,7 +328,7 @@
-         type = coord_vals.dtype.char[0]
- 
-         if not type in ['i','l','f','d','S']:
--            raise Exception, "error allowed data type are: i,l,f,d or S"
-+            raise Exception("error allowed data type are: i,l,f,d or S")
- 
-         if type == 'S':
-             type = 'c'
-@@ -344,7 +348,7 @@
-             
-     if units is None:
-         if coord_vals is not None:
--            raise Exception, "Error you need to provide the units your coord_vals are in"
-+            raise Exception("Error you need to provide the units your coord_vals are in")
-         else:
-             units = "1"
-     
-@@ -359,26 +363,26 @@
- def variable(table_entry,units,axis_ids,type='f',missing_value=None,tolerance = 1.e-4,positive=None,original_name=None,history=None,comment=None):
-     
-     if not isinstance(table_entry,str):
--        raise Exception, "Error you must pass a string for the variable table_entry"
-+        raise Exception("Error you must pass a string for the variable table_entry")
-     
-     if not isinstance(units,str):
--        raise Exception, "Error you must pass a string for the variable units"
-+        raise Exception("Error you must pass a string for the variable units")
- 
-     if original_name is not None:
-         if not isinstance(original_name,str):
--            raise Exception, "Error you must pass a string for the variable original_name"
-+            raise Exception("Error you must pass a string for the variable original_name")
-     else:
-         original_name = ""
-         
-     if history is not None:
-         if not isinstance(history,str):
--            raise Exception, "Error you must pass a string for the variable history"
-+            raise Exception("Error you must pass a string for the variable history")
-     else:
-         history = ""
-         
-     if comment is not None:
-         if not isinstance(comment,str):
--            raise Exception, "Error you must pass a string for the variable comment"
-+            raise Exception("Error you must pass a string for the variable comment")
-     else:
-         comment = ""
-         
-@@ -391,18 +395,18 @@
-     elif isinstance(axis_ids,(list,tuple)):
-         axis_ids = numpy.ascontiguousarray(axis_ids)
-     elif not isinstance(axis_ids, numpy.ndarray):
--        raise Exception, "Error could not convert axis_ids list to a numpy array"
-+        raise Exception("Error could not convert axis_ids list to a numpy array")
- 
-     if numpy.rank(axis_ids)>1:
--        raise Exception, "error axis_ids list/array must be 1D"
-+        raise Exception("error axis_ids list/array must be 1D")
- 
-     if not isinstance(type,str):
--        raise Exception, "error tpye must a a string"
-+        raise Exception("error tpye must a a string")
-     type = type.lower()
-     if type == 's':
-         type ='c'
-     if not type in ["c","d","f","l","i"]:
--        raise Exception, 'error unknown type: "%s", must be one of: "c","d","f","l","i"'
-+        raise Exception('error unknown type: "%s", must be one of: "c","d","f","l","i"')
- 
-     ndims = len(axis_ids)
- 
-@@ -422,13 +426,13 @@
-         comment = str(comment)
- 
-     if not isinstance(tolerance,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
--        raise Exception, "error tolerance must be a number"
-+        raise Exception("error tolerance must be a number")
- 
-     tolerance = float(tolerance)
- 
-     if missing_value is not None:
-         if not isinstance(missing_value,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
--            raise Exception, "error missing_value must be a number, you passed: %s" % repr(missing_value)
-+            raise Exception("error missing_value must be a number, you passed: %s" % repr(missing_value))
- 
-         missing_value = float(missing_value)
- 
-@@ -438,14 +442,14 @@
- def zfactor(zaxis_id,zfactor_name,units="",axis_ids=None,type=None,zfactor_values=None,zfactor_bounds=None):
- 
-     if not isinstance(zaxis_id,(int,numpy.int,numpy.int32)):
--        raise Exception, "error zaxis_id must be a number"
-+        raise Exception("error zaxis_id must be a number")
-     zaxis_id = int(zaxis_id)
- 
-     if not isinstance(zfactor_name,str):
--        raise Exception, "Error you must pass a string for the variable zfactor_name"
-+        raise Exception("Error you must pass a string for the variable zfactor_name")
-     
-     if not isinstance(units,str):
--        raise Exception, "Error you must pass a string for the variable units"
-+        raise Exception("Error you must pass a string for the variable units")
- 
-     if numpy.ma.isMA(axis_ids):
-         axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-@@ -462,10 +466,10 @@
-     elif isinstance(axis_ids,(int,numpy.int,numpy.int32)):
-         axis_ids = numpy.array([axis_ids,])
-     elif not isinstance(axis_ids, numpy.ndarray):
--        raise Exception, "Error could not convert axis_ids list to a numpy array"
-+        raise Exception("Error could not convert axis_ids list to a numpy array")
- 
-     if numpy.rank(axis_ids)>1:
--        raise Exception, "error axis_ids list/array must be 1D"
-+        raise Exception("error axis_ids list/array must be 1D")
- 
-     if axis_ids is None:
-         ndims = 0
-@@ -474,9 +478,9 @@
-         ndims = len(axis_ids)
- 
- ##     if ndims>1 and zfactor_values is not None:
--##         raise Exception, "Error you can only pass zfactor_values for zfactor with rank <=1"
-+##         raise Exception("Error you can only pass zfactor_values for zfactor with rank <=1")
- ##     if ndims>1 and zfactor_bounds is not None:
--##         raise Exception, "Error you can only pass zfactor_bounds for zfactor with rank <=1"
-+##         raise Exception("Error you can only pass zfactor_bounds for zfactor with rank <=1")
- 
-     if zfactor_values is not None:
-         if isinstance(zfactor_values,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
-@@ -490,7 +494,7 @@
-         elif isinstance(zfactor_values,(list,tuple)):
-             zfactor_values = numpy.ascontiguousarray(zfactor_values)
-         elif not isinstance(zfactor_values, numpy.ndarray):
--            raise Exception, "Error could not convert zfactor_values to a numpy array"
-+            raise Exception("Error could not convert zfactor_values to a numpy array")
- 
-         if type is None:
-             try:
-@@ -501,18 +505,18 @@
-                 elif isinstance(zfactor_values,(int,numpy.int,numpy.int32)):
-                     type = 'd'
-                 else:
--                    raise Exception, "Error unknown type for zfactor_values: %s" % repr(zfactor_values)
-+                    raise Exception("Error unknown type for zfactor_values: %s" % repr(zfactor_values))
-     elif type is None:
-         type='d'
-         
-         
-     if not isinstance(type,str):
--        raise Exception, "error tpye must a a string"
-+        raise Exception("error tpye must a a string")
-     type = type.lower()
-     if type == 's':
-         type ='c'
-     if not type in ["c","d","f","l","i"]:
--        raise Exception, 'error unknown type: "%s", must be one of: "c","d","f","l","i"'
-+        raise Exception('error unknown type: "%s", must be one of: "c","d","f","l","i"')
-     
-     if zfactor_bounds is not None:
-         if numpy.ma.isMA(zfactor_bounds):
-@@ -524,19 +528,19 @@
-         elif isinstance(zfactor_bounds,(list,tuple)):
-             zfactor_bounds = numpy.ascontiguousarray(zfactor_bounds)
-         elif not isinstance(zfactor_bounds, numpy.ndarray):
--            raise Exception, "Error could not convert zfactor_bounds to a numpy array"
-+            raise Exception("Error could not convert zfactor_bounds to a numpy array")
-         if numpy.rank(zfactor_bounds)>2:
--            raise Exception, "error zfactor_bounds must be rank 2 at most"
-+            raise Exception("error zfactor_bounds must be rank 2 at most")
-         elif numpy.rank(zfactor_bounds)==2:
-             if zfactor_bounds.shape[1]!=2:
--                raise Exception, "error zfactor_bounds' 2nd dimension must be of length 2"
-+                raise Exception("error zfactor_bounds' 2nd dimension must be of length 2")
-             bnds =[]
-             b = zfactor_bounds[0]
-             for i in range(zfactor_bounds.shape[0]):
-                 b = zfactor_bounds[i]
-                 bnds.append(b[0])
-                 if (i<zfactor_bounds.shape[0]-1) and (b[1]!=zfactor_bounds[i+1][0]):
--                    raise Exception, "error zfactor_bounds have gaps between them"
-+                    raise Exception("error zfactor_bounds have gaps between them")
-             bnds.append(zfactor_bounds[-1][1])
-             zfactor_bounds=numpy.array(bnds)
-     axis_ids = axis_ids.astype('i')
-@@ -551,15 +555,15 @@
-     ierr = write(var_id,data,ntimes_passed=None,file_suffix="",time_vals=None,time_bnds=None,store_with=None
-     """
-     if not isinstance(var_id,(int,numpy.int,numpy.int32)):
--        raise Exception, "error var_id must be an integer"
-+        raise Exception("error var_id must be an integer")
-     var_id = int(var_id)
- 
-     if not isinstance(file_suffix,str):
--        raise Exception,  "Error file_suffix must be a string"
-+        raise Exception("Error file_suffix must be a string")
- 
-     if store_with is not None:
-         if not isinstance(store_with,(int,numpy.int,numpy.int32)):
--            raise Exception, "error store_with must be an integer"
-+            raise Exception("error store_with must be an integer")
-         store_with = int(store_with)
- 
-     if numpy.ma.isMA(data):
-@@ -573,7 +577,7 @@
-     elif isinstance(data,(list,tuple)):
-         data = numpy.ascontiguousarray(data)
-     elif not isinstance(data, numpy.ndarray):
--            raise Exception, "Error could not convert data to a numpy array"
-+            raise Exception("Error could not convert data to a numpy array")
- 
- 
-     if time_vals is None:
-@@ -594,12 +598,12 @@
-         try:
-             time_vals = numpy.ascontiguousarray(time_vals)
-         except:
--            raise Exception, "Error could not convert time_vals to a numpy array"
-+            raise Exception("Error could not convert time_vals to a numpy array")
- 
-     if time_vals is not None:
-         type = time_vals.dtype.char
-         if not type in ['f','d','i','l']:
--            raise Exception, "Error time_vals type must one of: 'f','d','i','l', please convert first"
-+            raise Exception("Error time_vals type must one of: 'f','d','i','l', please convert first")
-         time_vals=time_vals.astype("d")
-        
- 
-@@ -609,7 +613,7 @@
-         else:
-             ntimes_passed = len(time_vals)
-     if not isinstance(ntimes_passed,(int,numpy.int,numpy.int32)):
--        raise Exception, "error ntimes_passed must be an integer"
-+        raise Exception("error ntimes_passed must be an integer")
-     ntimes_passed = int(ntimes_passed)
- 
- 
-@@ -627,7 +631,7 @@
-         if goodshape[i]!=0:
-             if sh[j]!=goodshape[i]:
-                 if goodshape[i]!=1:
--                    raise Exception,"error your data shape (%s) does not match the expect variable shape (%s)" % (str(osh),str(ogoodshape))
-+                    raise Exception("error your data shape (%s) does not match the expect variable shape (%s)" % (str(osh),str(ogoodshape)))
-             j+=1
-         elif ntimes_passed!=1:
-             j+=1
-@@ -649,13 +653,13 @@
-         elif isinstance(time_bnds,(list,tuple)):
-             time_bnds = numpy.ascontiguousarray(time_bnds)
-         elif not isinstance(time_bnds, numpy.ndarray):
--            raise Exception, "Error could not convert time_bnds to a numpy array"
-+            raise Exception("Error could not convert time_bnds to a numpy array")
- 
-         if numpy.rank(time_bnds)>2:
--            raise Exception, "bounds rank cannot be greater than 2"
-+            raise Exception("bounds rank cannot be greater than 2")
-         elif numpy.rank(time_bnds)==2:
-             if time_bnds.shape[1]!=2:
--                raise Exception, "error time_bnds' 2nd dimension must be of length 2"
-+                raise Exception("error time_bnds' 2nd dimension must be of length 2")
-             bnds =[]
-             if time_bnds.shape[0] > 1:
-                 _check_time_bounds_contiguous(time_bnds)
-@@ -669,7 +673,7 @@
-             else:
-                 ltv=len(time_vals)
-             if len(time_bnds)!=ltv+1:
--                raise Exception,"error time_bnds if 1D must be 1 elt greater than time_vals, you have %i vs %i" % (len(time_bnds),ltv)
-+                raise Exception("error time_bnds if 1D must be 1 elt greater than time_vals, you have %i vs %i" % (len(time_bnds),ltv))
-             bnds=[]
-             for i in range(ltv):
-                 bnds.append([time_bnds[i],time_bnds[i+1]])
-@@ -680,12 +684,12 @@
-     if time_bnds is not None:
-         type = time_bnds.dtype.char
-         if not type in ['f','d','i','l']:
--            raise Exception, "Error time_bnds type must one of: 'f','d','i','l', please convert first"
-+            raise Exception("Error time_bnds type must one of: 'f','d','i','l', please convert first")
-         time_bnds=time_bnds.astype("d")
- 
-     type = data.dtype.char
-     if not type in ['f','d','i','l']:
--        raise Exception, "Error data type must one of: 'f','d','i','l', please convert first"
-+        raise Exception("Error data type must one of: 'f','d','i','l', please convert first")
- 
-     return _cmor.write(var_id,data,type,file_suffix,ntimes_passed,time_vals,time_bnds,store_with)
- 
-@@ -696,7 +700,7 @@
-     for i in range(time_bnds.shape[0] - 1 ):
-         b = time_bnds[i]
-         if b[1]!=time_bnds[i+1][0]:
--            raise Exception, "error time_bnds have gaps between them"
-+            raise Exception("error time_bnds have gaps between them")
- 
- def _flatten_time_bounds(time_bnds):
-     '''
-@@ -721,21 +725,21 @@
-     create_subdirectories: 1 to create subdirectories structure, 0 to dump files directly where cmor_dataset tells to
- """
-     if not isinstance(exit_control,int) or not exit_control in [ cmor_const.CMOR_EXIT_ON_WARNING, cmor_const.CMOR_EXIT_ON_MAJOR, cmor_const.CMOR_NORMAL]:
--        raise Exception, "exit_control must an integer valid values are: CMOR_EXIT_ON_WARNING, CMOR_EXIT_ON_MAJOR, CMOR_NORMAL"
-+        raise Exception("exit_control must an integer valid values are: CMOR_EXIT_ON_WARNING, CMOR_EXIT_ON_MAJOR, CMOR_NORMAL")
- 
-     if not isinstance(netcdf_file_action,int) or not netcdf_file_action in [ cmor_const.CMOR_PRESERVE, cmor_const.CMOR_APPEND, cmor_const.CMOR_REPLACE, cmor_const.CMOR_PRESERVE_3, cmor_const.CMOR_APPEND_3, cmor_const.CMOR_REPLACE_3,cmor_const.CMOR_PRESERVE_4, cmor_const.CMOR_APPEND_4, cmor_const.CMOR_REPLACE_4 ]:
--        raise Exception, "netcdf_file_action must be an integer. Valid values are: CMOR_PRESERVE, CMOR_APPEND, CMOR_REPLACE, CMOR_PRESERVE_3, CMOR_APPEND_3 or CMOR_REPLACE_3, CMOR_PRESERVE_4, CMOR_APPEND_4 or CMOR_REPLACE_4"
-+        raise Exception("netcdf_file_action must be an integer. Valid values are: CMOR_PRESERVE, CMOR_APPEND, CMOR_REPLACE, CMOR_PRESERVE_3, CMOR_APPEND_3 or CMOR_REPLACE_3, CMOR_PRESERVE_4, CMOR_APPEND_4 or CMOR_REPLACE_4")
- 
-     if not isinstance(set_verbosity,int) or not set_verbosity in [ cmor_const.CMOR_QUIET, cmor_const.CMOR_NORMAL]:
--        raise Exception, "set_verbosity must an integer valid values are: CMOR_QUIET, CMOR_NORMAL"
-+        raise Exception("set_verbosity must an integer valid values are: CMOR_QUIET, CMOR_NORMAL")
- 
-     if not isinstance(inpath,str) and not os.path.exists(inpath):
--        raise Exception, "path must be a Valid path"
-+        raise Exception("path must be a Valid path")
-     if logfile is None:
-         logfile = ""
- 
-     if not create_subdirectories in [0,1]:
--        raise Exception, "create_subdirectories must be 0 or 1"
-+        raise Exception("create_subdirectories must be 0 or 1")
-     return _cmor.setup(inpath,netcdf_file_action,set_verbosity,exit_control,logfile,create_subdirectories)
- 
- def load_table(table):
-@@ -744,7 +748,7 @@
-     load_table(table)
-     """
-     if not isinstance(table,str):
--        raise Exception, "Error, must pass a string"
-+        raise Exception("Error, must pass a string")
- ##     if not os.path.exists(table):
- ##         raise Exception, "Error, the table you specified (%s) does not exists" % table
-     return _cmor.load_table(table)
-@@ -782,7 +786,7 @@
-         if not isinstance(st,str):
-             for o in dir():
-                 if locals()[o] is st:
--                    raise Exception, "Error argument %s must be a string" % o
-+                    raise Exception("Error argument %s must be a string" % o)
- 
-     calendar = calendar.lower()
-     
-@@ -790,7 +794,7 @@
-         if not isinstance(i,int):
-             for o in dir():
-                 if locals()[o] is i:
--                    raise Exception, "Error argument %s must be an integer" % o
-+                    raise Exception("Error argument %s must be an integer" % o)
-     if isinstance(month_lengths,(list,tuple)):
-         month_lengths = numpy.array(month_lengths)
-     elif has_cdms2 and cdms2.isVariable(month_lengths):
-@@ -802,26 +806,26 @@
-         
-     if isinstance(month_lengths,numpy.ndarray):
-         if not numpy.rank(month_lengths)==1:
--            raise Exception, "Error month_lengths must be 1D"
-+            raise Exception("Error month_lengths must be 1D")
-         if len(month_lengths)!=12:
--            raise Exception, "Error month_lengths must have 12 elements exactly"
-+            raise Exception("Error month_lengths must have 12 elements exactly")
-         months_lengths = numpy.ascontiguousarray(month_lengths)
-     elif month_lengths is not None:
--        raise Exception, "Error month_lengths must be a 12 elts array or list"
-+        raise Exception("Error month_lengths must be a 12 elts array or list")
-     if initialization_method is not None:
-         if not isinstance(initialization_method,int):
--            raise Exception, "initialization_method must be an int"
-+            raise Exception("initialization_method must be an int")
-     else:
-         initialization_method=0
-     if physics_version is not None:
-         if not isinstance(physics_version,int):
--            raise Exception, "physics_version must be an int"
-+            raise Exception("physics_version must be an int")
-     else:
-         physics_version=0
- 
-     if branch_time is not None:
-         if not isinstance(branch_time,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
--            raise Exception,"branch_time must be a float"
-+            raise Exception("branch_time must be a float")
-         else:
-             branch_time=float(branch_time)
- 
-@@ -829,7 +833,7 @@
- 
- def set_table(table):
-     if not isinstance(table,int):
--        raise Exception, "error you need to pass and integer as the table id"
-+        raise Exception("error you need to pass and integer as the table id")
-     return _cmor.set_table(table)
- 
- def close(var_id=None,file_name=False, preserve=False):
-@@ -842,7 +846,7 @@
-       [preserve] True/False (default False) if True: close the file but preserve the var definition in CMOR to write more data with this variable (into a new file)
-       """
-     if var_id is not None and not isinstance(var_id,int):
--        raise Exception, "Error var_id must be None or a integer"
-+        raise Exception("Error var_id must be None or a integer")
- 
-     if (preserve is False):
-         if (file_name is False):
-Index: cmor-2.8.3/Lib/__init__.py
-===================================================================
---- cmor-2.8.3.orig/Lib/__init__.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Lib/__init__.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,9 +1,9 @@
--from cmor_const import *
--
--from pywrapper import axis,variable,write,setup,load_table,dataset,set_table,zfactor,close,grid,set_grid_mapping,time_varying_grid_coordinate,set_cur_dataset_attribute,get_cur_dataset_attribute,has_cur_dataset_attribute,create_output_path,set_variable_attribute,get_variable_attribute,has_variable_attribute
-+from __future__ import print_function # Be python2/python3 agnostic
-+from .cmor_const import *
-+from .pywrapper import axis,variable,write,setup,load_table,dataset,set_table,zfactor,close,grid,set_grid_mapping,time_varying_grid_coordinate,set_cur_dataset_attribute,get_cur_dataset_attribute,has_cur_dataset_attribute,create_output_path,set_variable_attribute,get_variable_attribute,has_variable_attribute
- 
- try:
--  from check_CMOR_compliant import checkCMOR
--except Exception,err:
--  print err
-+  from .check_CMOR_compliant import checkCMOR
-+except Exception as err:
-+  print(err)
-   pass
-Index: cmor-2.8.3/Lib/check_CMOR_compliant.py
-===================================================================
---- cmor-2.8.3.orig/Lib/check_CMOR_compliant.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Lib/check_CMOR_compliant.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cdms2
- import os
- import unidata
-@@ -8,14 +9,19 @@
- import time
- VERBOSE=-999
- 
-+
- #ok now we are going online to pull the file that has the control md5s
- try:
-     f=open("Tables/md5s")
-     ctrl_md5s=eval(f.read())
- except:
-     try:
--        import urllib2
--        url=urllib2.urlopen("http://esgf.org/gitweb/?p=cmip5-cmor-tables.git;a=blob_plain;f=Tables/md5s;hb=HEAD")
-+        try: 
-+            import urllib2
-+            url=urllib2.urlopen("http://esgf.org/gitweb/?p=cmip5-cmor-tables.git;a=blob_plain;f=Tables/md5s;hb=HEAD")
-+        except ImportError:
-+            import urllib.request, urllib.error, urllib.parse
-+            url=urllib.request.urlopen("http://esgf.org/gitweb/?p=cmip5-cmor-tables.git;a=blob_plain;f=Tables/md5s;hb=HEAD")
-         ctrl_md5s=eval(url.read())
-         url.close()
-         del(url)
-@@ -53,11 +59,11 @@
-         color=34
-     else:
-         return
--    print >> fout, "%c[%d;%d;%dm" % (0X1B,2,color,47)
-+    print("%c[%d;%d;%dm" % (0X1B,2,color,47),file=fout)
-     return
- 
- def delcoloring(fout):
--    print >> fout,"%c[%dm" % (0X1B,0)
-+    print("%c[%dm" % (0X1B,0), file=fout)
-     return
-     
- def manageLog(fout,error,*msg_bits):
-@@ -67,35 +73,35 @@
-         msg+=" "+str(m)
-     msg=msg.lstrip()
-         
--##     print >>fout, 'No error is:',noerror
-+##     print( 'No error is:',noerror,file=fout)
-     if error == cmor.CMOR_CRITICAL:
--        raise CMORError,[msg,]
-+        raise CMORError([msg,])
-     elif error == VERBOSE:
-         fout.write( msg)
-         if msg_bits[-1]!="":
--            print >> fout
-+            print(file=fout)
-         return
-         
-     addcoloring(fout,error)
--    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
--    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-+    print('@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%',file=fout)
-+    print('@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%',file=fout)
-     if error == cmor.CMOR_NORMAL:
--        print >>fout, '@#%@#%@#%@#%@#%           ERROR          %@#%@#%@#%@#%@#%@#%@#%'
-+        print('@#%@#%@#%@#%@#%           ERROR          %@#%@#%@#%@#%@#%@#%@#%',file=fout)
-     elif error == cmor.CMOR_WARNING:
--        print >>fout, '@#%@#%@#%@#%@#%          WARNING         %@#%@#%@#%@#%@#%@#%@#%'
--    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
--    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-+        print('@#%@#%@#%@#%@#%          WARNING         %@#%@#%@#%@#%@#%@#%@#%',file=fout)
-+    print('@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%',file=fout)
-+    print('@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%',file=fout)
-     delcoloring(fout)
--    print >>fout
-+    print(file=fout)
-     addcoloring(fout,error)
--    print >>fout, msg
-+    print(msg,file=fout)
-     delcoloring(fout)
--    print >>fout
-+    print(file=fout)
-     addcoloring(fout,error)
--    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
--    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-+    print('@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%',file=fout)
-+    print('@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%',file=fout)
-     delcoloring(fout)
--    print >>fout
-+    print(file=fout)
-     return 1
- 
- def split_expt_ids(val):
-@@ -143,7 +149,7 @@
-         st=st.split('!')[0].strip()
-         if st[0]=="'":
-             st=st[1:-1]
--        if gen_attributes.has_key(kw):
-+        if kw in gen_attributes:
-             if isinstance(gen_attributes[kw],str):
-                 gen_attributes[kw]=[gen_attributes[kw],st]
-             else:
-@@ -156,11 +162,11 @@
-         sp=l.split('_entry:')
-         entry_type=sp[0]
-         entry=sp[1].strip()
--        if not e.has_key(entry_type):
-+        if entry_type not in e:
-             e[entry_type]={}
-         e[entry_type][entry]=e[entry_type].get(entry,{})
-             
--##         print >>fout, e[entry_type][entry]
-+##         print(e[entry_type][entry],file=fout)
-         cont=1
-         while cont:
-             l = ln.pop(0)[:-1]
-@@ -176,26 +182,26 @@
-             sp=l.split(':')
-             kw=sp[0].strip()
-             val=":".join(sp[1:]).split('!')[0].strip()
--            ## print  'dic is:',e[entry_type][entry]
--            if e[entry_type][entry].has_key(kw):
-+            ## print('dic is:',e[entry_type][entry])
-+            if kw in e[entry_type][entry]:
-                 if kw in lists_kw:
-                     e[entry_type][entry][kw]="".join(e[entry_type][entry][kw])
-                 e[entry_type][entry][kw]+=' '+val
-             else:
-                 e[entry_type][entry][kw]=val
--##             print >>fout, 'After:',e[entry_type][entry][kw]
-+##             print('After:',e[entry_type][entry][kw],file=fout)
-             if kw in lists_kw:
--##                 print >>fout, 'splitting:',kw,e[entry_type][entry][kw].split()
-+##                 print('splitting:',kw,e[entry_type][entry][kw].split(),file=fout)
-                 e[entry_type][entry][kw]=e[entry_type][entry][kw].split()
-             if len(ln)==0:
-                 cont=0
-     e['general']=gen_attributes
- ##     for type in e.keys():
--##         print >>fout, 'Type:',type
-+##         print('Type:',type,file=fout)
- ##         for k in e[type].keys():
--##             print >>fout, '\t Entry:',k
-+##             print('\t Entry:',k,file=fout)
- ##             for a in e[type][k].keys():
--##                 print >>fout, '\t\t',a,':',e[type][k][a]
-+##                 print('\t\t',a,':',e[type][k][a],file=fout)
-     return e
- 
- 
-@@ -227,9 +233,9 @@
-         for ex in extra_req:
-             if not ex in req_glbl_att:
-                 req_glbl_att.append(ex)
--        for v in Vars.keys():
-+        for v in list(Vars.keys()):
-             IPCC_std_vars.append(Vars[v].get('out_name',v))
--        for a in Axes.keys():
-+        for a in list(Axes.keys()):
-             onm = Axes[a].get('out_name',a)
-             if not onm in IPCC_std_axes:
-                 IPCC_std_axes.append(onm)
-@@ -264,7 +270,7 @@
-         manageLog(fout,VERBOSE, 'Checking file argument',IPCC_std_axes)
-         manageLog(fout,VERBOSE, 'Checking path structure for path:',pthroot)
-         manageLog(fout,VERBOSE, 'Checking file structure for file:',fnm)
--        print >> fout, 'Checking the file starts with variable name'
-+        print('Checking the file starts with variable name',file=fout)
-         ok = False
-         for v in IPCC_std_vars:
-             n = len(v)
-@@ -275,8 +281,8 @@
-             nerr+=manageLog(fout, noerror, ''+shrt_fnm+' does not start with standard %s variable name followed by _' % file.project_id)
-         vf=v
-         #Check the variable is actually in the file
--        if not v in file.variables.keys():
--            nerr+=manageLog(fout,noerror,"Your file name says it contains variable",v,"but it is not in your file, your file contains:",file.variables.keys())
-+        if not v in list(file.variables.keys()):
-+            nerr+=manageLog(fout,noerror,"Your file name says it contains variable",v,"but it is not in your file, your file contains:",list(file.variables.keys()))
-         if hasattr(file,'cmor_version'):
-             up = False
-             rew = False
-@@ -447,7 +453,7 @@
-                 nwarn+=1
-                 manageLog(fout,cmor.CMOR_WARNING, '\t\tIt is often helpful to define the global attribute: ',att)
- 
--        for att in file.attributes.keys():
-+        for att in list(file.attributes.keys()):
-             ncheck+=1
-             if not att in req_glbl_att and not att in opt_glbl_att:
-                 nwarn+=1
-@@ -483,7 +489,7 @@
-                                 ctrlmd5=tmd5s.get(tbl_date,None)
-                                 if ctrlmd5 is None:
-                                     nwarn+=1
--                                    manageLog(fout,cmor.CMOR_WARNING, '\t\tCould not obtain control md5s for table %s for project %s dated on %s, valid tables dates are: ' % (tbl_id,file.project_id,tbl_date),sorted(tmd5s.keys()))
-+                                    manageLog(fout,cmor.CMOR_WARNING, '\t\tCould not obtain control md5s for table %s for project %s dated on %s, valid tables dates are: ' % (tbl_id,file.project_id,tbl_date),sorted(list(tmd5s.keys())))
-                                 else:
-                                     ncheck+=1
-                                     if ctrlmd5!=tbl_md5:
-@@ -492,7 +498,7 @@
-                                         
- 
-                         
--                except Exception,err:
-+                except Exception as err:
-                     #no md5 stored in file
-                     pass
-                 ttbl_id = e['general'].get("table_id").split()[1]
-@@ -538,7 +544,7 @@
-             else:
-                 spoffset=0
-                 
--            print len(sp)
-+            print(len(sp))
-             if len(sp)<n:
-                 nerr+=manageLog(fout, noerror, 'your file name does not seem to match the profile: varid_tableid_modelid_exptid_rid[iid][pid][_startdate-enddate][_suffix][_clim].nc')
-                 
-@@ -874,7 +880,7 @@
-         manageLog(fout,VERBOSE, 'Ok user asked to check the following variable:',variable,'with from bounds =',fb)
-     manageLog(fout,VERBOSE, 'Checking variable name is %s compliant' % file.project_id)
-     if not var in IPCC_std_vars:
--        if var in Vars.keys():
-+        if var in list(Vars.keys()):
-             nerr+=manageLog(fout, noerror, var+' is not valid, did you mean :'+Vars[var]['out_name']+' ?')
-         else:
-             nerr+=manageLog(fout, noerror, 'Variable name :'+var+' is not %s compliant' % file.project_id)
-@@ -895,7 +901,7 @@
-     for ax in axes:
-         manageLog(fout,VERBOSE, 'Checking axis name is valid for:',ax.id,'on var:',V.id)
-         if not ax.id in IPCC_std_axes:
--            if ax.id in Axes.keys():
-+            if ax.id in list(Axes.keys()):
-                 if major <2:
-                     ncheck+=1
-                     nwarn+=1
-@@ -970,8 +976,8 @@
-                 gnm=nm
-                 manageLog(fout,VERBOSE, '\tChecking special case %s, i.e' % (nm),'')
-                 tmpax=V.getLevel()
--                print>>fout,  tmpax.id,tmpax.standard_name
--                for x in Axes.keys():
-+                print(tmpax.id,tmpax.standard_name,file=fout)
-+                for x in list(Axes.keys()):
-                     tmp=Axes[x].get('standard_name',None)
-                     if tmp is not None: tmp=tmp.strip()
-                     if tmp is not None and tmp==tmpax.standard_name:
-@@ -1089,7 +1095,7 @@
-                 manageLog(fout,VERBOSE, r,'')
-                 val=getattr(ax,r,None)
-                 if val is None:
--                    print >>fout
-+                    print(file=fout)
-                     nerr+=manageLog(fout, noerror, 'attribute '+r+' is required for axis '+ax.id)
-                 if r!='units':
-                     good_val=Axes[nm].get(r,None)
-@@ -1097,8 +1103,8 @@
-                         if val!=good_val:
-                             nerr+=manageLog(fout, noerror, 'axis attribute '+r+' should be: '+str(good_val)+' but is:'+str(val))
-                 if r=='formula_terms':
--                    print 'Formula:',Axes[anm]['formula'],val
--            print >>fout
-+                    print('Formula:',Axes[anm]['formula'],val,file=fout)
-+            print(file=fout)
-             if not 'units' in Axes[nm].get('ignored',[]):
-                 if not 'units' in Axes[nm].get('optional',[]) or ('units' in Axes[nm].get('optional',[]) and hasattr(ax,'units')):
-                     if not ax.isTime():
-@@ -1200,7 +1206,7 @@
-                 manageLog(fout,VERBOSE, '\t\tChecking that the latitude are in degrees (not rads)')
-                 min,max=genutil.minmax(ax[:])
-                 if 0.<max-min<3.2:
--                    print ax[:]
-+                    print(ax[:])
-                     nerr+=manageLog(fout, noerror, 'latitude must be stored in degree span is:'+str(max-min)+' looks like rad')
-             elif ax.isTime() and len(ax[:])>1:
-                 manageLog(fout,VERBOSE, '\t\tChecking for axis attribute')
-@@ -1212,7 +1218,7 @@
-                 manageLog(fout,VERBOSE, '\t\tView calendar attribute: ','')
-                 c=getattr(ax,'calendar',None)
-                 if c is None:
--                    print >>fout
-+                    print(file=fout)
-                     nerr+=manageLog(fout, noerror, 'calendar attribute must be defined on time axis')
-                 else:
-                     manageLog(fout,VERBOSE, c)
-@@ -1255,7 +1261,7 @@
-                         t=t.split()[-1]
-     ##                     manageLog(fout,VERBOSE, 'Now it is:',t)
-                         sp2=ft.split(t+':')[1].split()[0]
--                        if not sp2 in file.variables.keys():
-+                        if not sp2 in list(file.variables.keys()):
-                             nerr+=manageLog(fout, noerror, 'formula_terms attribute indicates variable '+sp2+' should be stored in file')
- 
-             if not docoord:
-@@ -1329,7 +1335,7 @@
-                         nerr+=manageLog(fout, noerror, 'dimension:'+Nm+' has no associated bounds')
-                 else:
-                     manageLog(fout,VERBOSE, '\t\tChecking that defined bounds variable is in file')
--                    if not b in file.variables.keys():
-+                    if not b in list(file.variables.keys()):
-                         nerr+=manageLog(fout, noerror, 'dimension '+Nm+' associated bounds are defined to be '+b+' but the variable is not present in file')
-                     if ax.isTime():
-                         interv = Axes[nm].get('interval',None)
-@@ -1345,7 +1351,7 @@
-                                 else:
-                                     c=ax.getCalendar()
- 
--##                                 print 'Used calendar:',c
-+##                                 print('Used calendar:',c,file=fout)
-                                 beg=cdtime.reltime(b[0],ax.units).tocomp(c)
-                                 end=cdtime.reltime(b[1],ax.units).tocomp(c)
-                                 mid=cdtime.reltime(ax[ib],ax.units).tocomp(c)
-@@ -1363,7 +1369,7 @@
-     opt_var_Att=['original_name','history','long_name','comment','coordinates','cell_methods','original_units',"cell_measures"]
-     for etmp in etables:
-         ev = etmp['variable']
--        for v in ev.keys():
-+        for v in list(ev.keys()):
-             if v == var:
-                 for p in ev[v].get("optional",[]):
-                     if p in req_var_Att:
-@@ -1408,7 +1414,7 @@
-                         if val.find(sp[i+1]+"_")==-1:
-                             nerr+=manageLog(fout,noerror,"associated files should point to file containing:",sp[i+1],'you have:',val)
-                             
--    print >>fout
-+    print(file=fout)
-     tp=Vars[V.id].get('type','real')
-     manageLog(fout,VERBOSE, '\tChecking Variable typecode is',tp)
-     if tp == 'double' : tp='d'
-@@ -1430,7 +1436,7 @@
-                       '1 '+V.units+' is actually :'+str(U2))
-         except:
-             nerr+=manageLog(fout, noerror, 'variable units:'+V.units+' do not match IPCC units:'+Vars[var]['units'])
--    if 'standard_name' in Vars[var].keys():
-+    if 'standard_name' in list(Vars[var].keys()):
-         manageLog(fout,VERBOSE, '\tChecking standard name (case independent)')
-         if getattr(V,'standard_name','').lower().strip()!=Vars[var]['standard_name']:
-             nerr+=manageLog(fout, noerror, 'standard_name for '+var+' should be:'+Vars[var]['standard_name'])
-@@ -1479,10 +1485,10 @@
-         if cm!=[]:
-             manageLog(fout,VERBOSE, '\tChecking for cell_methods: ','')
-             if not hasattr(V,'cell_methods'):
--                print >> fout
-+                print(file=fout)
-                 nerr+=manageLog(fout, noerror, 'Variable '+var+' should have "cell_methods" attribute')
-             else:
--                 print >> fout,V.cell_methods
-+                 print(V.cell_methods,file=fout)
-                
-             cmv=getattr(V,'cell_methods','')
-             sp=cm.split('(')
-@@ -1505,8 +1511,8 @@
-             for s in sp[1:]:
-                 dicv[kw]=s.split()[0].strip()
-                 kw=s.split()[-1].strip()
--            for kw in dic.keys():
--                if not kw in dicv.keys():
-+            for kw in list(dic.keys()):
-+                if not kw in list(dicv.keys()):
-                     nerr+=manageLog(fout, noerror, 'cell_methods must include '+kw+' defined (to: '+dic[kw]+' )')
-                 elif not dicv[kw]==dic[kw]:
-                     nerr+=manageLog(fout, noerror, 'cell_method: '+kw+' definition does not match table, it is :'+dicv[kw]+' but should be: '+dic[kw])
-@@ -1515,7 +1521,7 @@
-             if not hasattr(V,att):
-                 nwarn+=1
-                 manageLog(fout,cmor.CMOR_WARNING, '\t\tWhen appropriate, it is often helpful to define the variable attribute: ',att)
--        for att in V.attributes.keys():
-+        for att in list(V.attributes.keys()):
-             ncheck+=1
-             if not att in req_var_Att and not att in opt_var_Att:
-                 nwarn+=1
-@@ -1535,8 +1541,8 @@
-             nerr+=nerr
-         manageLog(fout,cmor.CMOR_WARNING, '%d warnings issued out of %d checked for (%5.2f%%)' % (nwarn,ncheck,float(nwarn)/ncheck*100))
-         if nerr!=0:
--            print 'Nerr:',nerr
--            raise CMORError,'%i CMOR errors were raise, please check output and correct your file !!!!' % (nerr)
-+            print('Nerr:',nerr)
-+            raise CMORError('%i CMOR errors were raise, please check output and correct your file !!!!' % (nerr))
- 
-         file.close()
-     return nwarn,ncheck,nerr
-@@ -1585,7 +1591,7 @@
-         if o in ['--grid_table','-g']:
-             grid_table=p
-         if o in ['--help','-h','-?']:
--            print help
-+            print(help)
-             sys.exit()
-         if o in ['--noerror','-e']:
-             if p.lower() in ['off','0']:
-@@ -1595,16 +1601,16 @@
-         if o in ['--out','-o']:
-             out=p
- 
--    print 'File is:',file,file.find('*')
-+    print('File is:',file,file.find('*'))
-     if os.path.isdir(file):
-         files=os.popen('ls '+file+'/*.nc').readlines()
-     elif file.find('*')>=0:
-         files=os.popen('ls '+file).readlines()
-     else:
-         files=[file]
--    print 'Files:',files
-+    print('Files:',files)
-     for file in files:
--        print 'Dealing with ',file.strip()
-+        print('Dealing with ',file.strip())
-         if out.lower()=='screen':
-             fout=sys.stdout
-         elif out.lower()=='file':
-@@ -1617,6 +1623,6 @@
-         else:
-             try:
-                 checkCMOR(fout,file.strip(),table,other_tables=[grid_table,],noerror=noerror,variable=var)
--            except Exception,err:
--                print err
-+            except Exception as err:
-+                print(err)
-            
-Index: cmor-2.8.3/Test/check_results.py
-===================================================================
---- cmor-2.8.3.orig/Test/check_results.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/check_results.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from out_files import out
- from in_files import input_tables
- import sys,os
-@@ -10,7 +11,7 @@
- if test[-4:].lower()=='.f90':
-     test=test[:-4]
- 
--print 'Checking results for:',test
-+print('Checking results for:',test)
- 
- outfiles = out.get(test,[])
- intables = input_tables.get(test,['IPCC_test_table_A',])
-@@ -22,12 +23,12 @@
- 
- nfiles = 0
- 
--print 'files:',outfiles
-+print('files:',outfiles)
- gotfiles=[]
- missing=[]
- for f in outfiles:
-     if f is None:
--        print 'No checking'
-+        prints('uNo checking')
-         sys.exit()
-     tables=[]
-     for t in intables:
-@@ -39,13 +40,13 @@
-     if os.path.exists(fnm):
-         nfiles+=1
-         gotfiles.append(fnm)
--        print 'Checking output file:',f
-+        print('Checking output file:',f)
-         cmor.checkCMOR(sys.stdout,fnm,tbl,other_tables=tables)
--        print '----------------------- Success ------------------------------'
-+        print('----------------------- Success ------------------------------')
-         os.remove(fnm)
-     else:
-         missing.append(fnm)
- if nfiles == 0 and outfiles!=[]:
--    raise CMORResultCheckError,["Error could not find any output file for test: Test/%s.f90" % (test),]
-+    raise CMORResultCheckError(["Error could not find any output file for test: Test/%s.f90" % (test),])
- elif nfiles!=len(outfiles):
--    raise CMORResultCheckError,["Error checking output files for test: Test/%s.f90 we could only find %i files when %i were expected.\n\n Expected files: \n\t%s\n\nPresent files: \n\t%s\n\nMissing files: \n\t%s\n" % (test,nfiles,len(outfiles),repr(outfiles),repr(gotfiles),repr(missing)),]
-+    raise CMORResultCheckError(["Error checking output files for test: Test/%s.f90 we could only find %i files when %i were expected.\n\n Expected files: \n\t%s\n\nPresent files: \n\t%s\n\nMissing files: \n\t%s\n" % (test,nfiles,len(outfiles),repr(outfiles),repr(gotfiles),repr(missing)),])
-Index: cmor-2.8.3/Test/cmor_speed_and_compression_01.py
-===================================================================
---- cmor-2.8.3.orig/Test/cmor_speed_and_compression_01.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/cmor_speed_and_compression_01.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,11 +1,13 @@
-+from __future__ import print_function 
- import cmor,numpy,sys,os
-+
- try:
-     import cdms2
-     cdms2.setNetcdfShuffleFlag(0)
-     cdms2.setNetcdfDeflateFlag(0)
-     cdms2.setNetcdfDeflateLevelFlag(0)
- except:
--    print "This test code needs a recent cdms2 interface for i/0"
-+    print("This test code needs a recent cdms2 interface for i/0")
-     sys.exit()
- 
- if len(sys.argv)>1:
-@@ -52,7 +54,7 @@
- 
- tables=[]
- tables.append(cmor.load_table("mytable"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- 
- ## read in data, just one slice
-@@ -98,11 +100,11 @@
- mincdms=1000
- c0=st
- f=cdms2.open("Test/crap.nc","w")
--#print 'Time:',i
--print s.filled().shape
-+#print('Time:',i)
-+print(s.filled().shape)
- cmor.write(myvars[0],s.filled(),ntimes_passed=ntimes)
- c=time.time()
--#print 'cmor write time:',c-c0
-+#printi('cmor write time:',c-c0)
- totcmor+=c-c0
- if maxcmor<c-c0:
-     maxcmor=c-c0
-@@ -111,7 +113,7 @@
- c0=c
- f.write(s,id=varout)
- c=time.time()
--#print 'cdms time:',c-c0
-+#print('cdms time:',c-c0)
- totcdms+=c-c0
- if maxcdms<c-c0:
-     maxcdms=c-c0
-@@ -124,12 +126,12 @@
- import cdtime,os
- ltime = cdtime.reltime(ntimes-1,'month since 1980').tocomp()
- lcmor = os.stat("Test/CMIP5/output/PCMDI/GICCM1/lgm/mon/atmos/tas/r1i1p1/tas_Amon_GICCM1_lgm_r1i1p1_198401-198412.nc")[6]
--print 'level:',level,"shuffle:",shuffle
--print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
-+print('level:',level,"shuffle:",shuffle)
-+print('total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor)
- lcdms = os.stat("Test/crap.nc")[6]
--print 'total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms
--print 'Size diff:',float(lcmor)/float(lcdms)
--print 'speed diff:', totcmor/totcdms
-+print('total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms)
-+print('Size diff:',float(lcmor)/float(lcdms))
-+print('speed diff:', totcmor/totcdms)
- 
- if os.path.exists("summary.txt"):
-     f = open("summary.txt")
-@@ -144,7 +146,7 @@
- for i in range(10):
-     a = dic.get((i,0),"N/A")
-     b = dic.get((i,1),"N/A")
--    print 'Level: ',i,"no suffle:",a,"shuffle",b
-+    print('Level: ',i,"no suffle:",a,"shuffle",b)
- f=open("summary.txt","w")
- f.write(repr(dic))
- f.close()
-Index: cmor-2.8.3/setup.py.in
-===================================================================
---- cmor-2.8.3.orig/setup.py.in	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/setup.py.in	2013-06-15 10:54:40.000000000 +0100
-@@ -1,8 +1,10 @@
-+from __future__ import print_function # to be python2/python3 agnostic
- import numpy
- from numpy.distutils.core import setup, Extension
- #from numpy.distutils.ccompiler import CCompiler
- import os,sys,string
- 
-+
- include_dirs = [numpy.lib.utils.get_include(),"include","include/cdTime"]
- 
- library_dirs = [ os.path.join("@prefix@","lib") ,'.']
-@@ -38,12 +40,12 @@
-       ld.append(p)
- include_dirs=ld
- 
--print 'Setting up python module with:'
--print 'libraries:',libraries
--print 'libdir:',library_dirs
--print 'incdir',include_dirs
--print 'src:',srcfiles
--print 'macros:',macros
-+print('Setting up python module with:')
-+print('libraries:',libraries)
-+print('libdir:',library_dirs)
-+print('incdir',include_dirs)
-+print('src:',srcfiles)
-+print('macros:',macros)
- 
- setup (name = "CMOR",
-        version='2.0',
-Index: cmor-2.8.3/Test/cmor_speed_and_compression_02.py
-===================================================================
---- cmor-2.8.3.orig/Test/cmor_speed_and_compression_02.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/cmor_speed_and_compression_02.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,8 +1,9 @@
-+from __future__ import print_function
- import cmor,numpy,sys,os
- try:
-     import cdms2
- except:
--    print "This test code needs cdms2 interface for i/0"
-+    print("This test code needs cdms2 interface for I/O")
-     sys.exit()
- 
- cdms2.setNetcdfShuffleFlag(0)
-@@ -52,7 +53,7 @@
- 
- tables=[]
- tables.append(cmor.load_table("mytable"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- 
- ## read in data, just one slice
-@@ -75,7 +76,7 @@
-     except:
-         missing_value=None
- 
--print 'Missing:',type(missing_value),missing_value
-+print('Missing:',type(missing_value),missing_value)
- #missing_value = -999.
- myaxes[0] = cmor.axis(table_entry = 'latitude', 
-                       units = 'degrees_north', 
-@@ -115,7 +116,7 @@
- f=cdms2.open("Test/crap.nc","w")
- step=10
- for i in range(0,ntimes,step):
--    print 'Time:',i
-+    print('Time:',i)
-     j1=i
-     j2=i+step
-     cmor.write(myvars[0],s[j1:j2].filled(),step,file_suffix="speed-comp-02")
-@@ -154,15 +155,15 @@
- import cdtime,os
- ltime = cdtime.reltime(Tim[ntimes-1],Tim.units).tocomp()
- ftime = cdtime.reltime(Tim[0],Tim.units).tocomp()
--print ftime,ltime
--print (var,var,ftime.year,ftime.month,ltime.year,ltime.month)
-+print(ftime,ltime)
-+print((var,var,ftime.year,ftime.month,ltime.year,ltime.month))
- lcmor = os.stat("Test/IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-09a/mon/REALM/%s/r1/%s_A1_pcmdi-09a_r1_%i%.2i-%i%.2i_speed-comp-02.nc" % (var,var,ftime.year,ftime.month,ltime.year,ltime.month))[6]
--print 'level:',level,"shuffle:",shuffle
--print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
-+print('level:',level,"shuffle:",shuffle)
-+print('total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor)
- lcdms = os.stat("Test/crap.nc")[6]
--print 'total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms
--print 'Size diff:',float(lcmor)/float(lcdms)
--print 'speed diff:', totcmor/totcdms
-+print('total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms)
-+print('Size diff:',float(lcmor)/float(lcdms))
-+print('speed diff:', totcmor/totcdms)
- 
- if os.path.exists("summary.txt"):
-     f = open("summary.txt")
-@@ -177,7 +178,7 @@
- for i in range(10):
-     a = dic.get((i,0),"N/A")
-     b = dic.get((i,1),"N/A")
--    print 'Level: ',i,"no suffle:",a,"shuffle",b
-+    print('Level: ',i,"no suffle:",a,"shuffle",b)
- f=open("summary.txt","w")
- f.write(repr(dic))
- f.close()
-Index: cmor-2.8.3/Test/cmor_speed_and_compression.py
-===================================================================
---- cmor-2.8.3.orig/Test/cmor_speed_and_compression.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/cmor_speed_and_compression.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy,sys,os
- try:
-     import cdms2
-@@ -5,7 +6,7 @@
-     cdms2.setNetcdfDeflateFlag(0)
-     cdms2.setNetcdfDeflateLevelFlag(0)
- except:
--    print "This test code needs a recent cdms2 interface for i/0"
-+    print("This test code needs a recent cdms2 interface for I/O")
-     sys.exit()
- 
- if len(sys.argv)>1:
-@@ -52,7 +53,7 @@
- 
- tables=[]
- tables.append(cmor.load_table("mytable"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- 
- ## read in data, just one slice
-@@ -98,7 +99,7 @@
- c0=st
- s2=s*1
- sh=list(s.shape)
--print 'shape:',sh
-+print('shape:',sh)
- sh.insert(0,1)
- s2=MV2.reshape(s2,sh)
- s2.setAxis(1,s.getLatitude())
-@@ -135,12 +136,12 @@
- import cdtime,os
- ltime = cdtime.reltime(ntimes-1,'month since 1980').tocomp()
- lcmor = os.stat("Test/CMIP5/output/PCMDI/GICCM1/historical/mon/atmos/tas/r1i1p1/tas_Amon_GICCM1_historical_r1i1p1_198001-%i%.2i.nc" % (ltime.year,ltime.month))[6]
--print 'level:',level,"shuffle:",shuffle
--print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
-+print('level:',level,"shuffle:",shuffle)
-+print('total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor)
- lcdms = os.stat("Test/crap.nc")[6]
--print 'total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms
--print 'Size diff:',float(lcmor)/float(lcdms)
--print 'speed diff:', totcmor/totcdms
-+print('total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms)
-+print('Size diff:',float(lcmor)/float(lcdms))
-+print('speed diff:', totcmor/totcdms)
- 
- if os.path.exists("summary.txt"):
-     f = open("summary.txt")
-@@ -155,7 +156,7 @@
- for i in range(10):
-     a = dic.get((i,0),"N/A")
-     b = dic.get((i,1),"N/A")
--    print 'Level: ',i,"no suffle:",a,"shuffle",b
-+    print('Level: ',i,"no suffle:",a,"shuffle",b)
- f=open("summary.txt","w")
- f.write(repr(dic))
- f.close()
-Index: cmor-2.8.3/Test/jamie_hybrid_height.py
-===================================================================
---- cmor-2.8.3.orig/Test/jamie_hybrid_height.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/jamie_hybrid_height.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
- #!/usr/bin/env python
--
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -45,22 +45,22 @@
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
--    print 'cmor.axis calls complete'
-+    print('cmor.axis calls complete')
- 
-     cmor.zfactor(axis_ids[3], 'b', '', axis_ids[3:4], 'd', [0., 0.5], [[0., 0.25], [0.25, 1.]])
-     cmor.zfactor(axis_ids[3], 'orog', 'm', axis_ids[1:3], 'd', [[0.]]) 
--    print 'cmor.zfactor calls complete'
-+    print('cmor.zfactor calls complete')
-     varid = cmor.variable('ua',
-                           'm s-1',
-                           axis_ids,
-                           missing_value = -99
-                           )
- 
--    print 'cmor.variable call complete'
-+    print('cmor.variable call complete')
-     
-     cmor.write(varid, values, time_vals = [6.0])
- 
--    print 'cmor.write call complete'
-+    print('cmor.write call complete')
- 
-     cmor.close()
-     
-Index: cmor-2.8.3/Test/nc2asc.py
-===================================================================
---- cmor-2.8.3.orig/Test/nc2asc.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/nc2asc.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
- #!/usr/bin/env python
--
-+from __future__ import print_function
- import cdms2,sys, genutil
- cdms2.setAutoBounds('on')
- 
-@@ -20,18 +20,18 @@
- f=cdms2.open(fnm)
- 
- ntimes= 3
--print 'var:',var
-+print('var:',var)
- #s=f(var,time=slice(0,3),latitude=(-20,20),order=order,squeeze=1)
- if order is not None:
- 	if order.find('z')>-1:
- 		s=f(var,time=slice(0,ntimes),order=order,squeeze=1,longitude=(-180,180,'con'),level=slice(5,12))
--		print s.getLevel()[:]
-+		print(s.getLevel()[:])
- 	else:
- 		s=f(var,time=slice(0,ntimes),order=order,squeeze=1,longitude=(-180,180,'con'))
- else:
- 	s=f(var,time=slice(0,ntimes),squeeze=1)
- #s=s[:,::4,::4]
--print 'Read in',s.shape
-+print('Read in',s.shape)
- try:
- 	p=s.getLevel()
- 	p.id='pressure'
-@@ -44,41 +44,41 @@
- f=open(fout,'w')
- 
- ndim=s.rank()
--print 'Dumping'
--print >>f, s.id
--print >>f, s.units
--print >>f, ndim
-+print('Dumping')
-+print(s.id, file=f)
-+print(s.units, file=f)
-+print(ndimi, file=f)
- 
- for i in range(ndim):
-     ax=s.getAxis(i)
--    print >>f, len(ax)
-+    print(len(ax), file=f)
- 	
- for i in range(ndim):
-     ax=s.getAxis(i)
-     if ax.isLatitude():
--	    print >>f, 'latitude'
-+	    print('latitude', file=f)
-     elif ax.isLongitude():
--	    print >>f,'longitude'
-+	    print('longitude', file=f)
-     else:
--	    print >>f, ax.id
--    print >>f, ax.units
--    print  ax.id
--    print  ax.units
-+	    print(ax.id, file=f)
-+    print(ax.units, file=f)
-+    print(ax.id)
-+    print(ax.units)
-     for j in ax[:]:
--        print >>f, j,
--    print >>f
-+        print(j, file=f)
-+    print(file=f)
-     for j in ax.getBounds().flat[:]:
--        print >>f, j,
--    print >>f
-+        print(j, file=f)
-+    print(file=f)
- f.flush()
- 
- s=s.filled(120).astype(type)
- s=s.flat
- j=0
- for i in s[:]:
--    print >>f, i,
-+    print(i, file=f)
-     j+=1
--print >>f
--print j,s[-1]
-+print(file=f)
-+print(j,s[-1])
- 
- f.close()
-Index: cmor-2.8.3/Src/_cmormodule.c
-===================================================================
---- cmor-2.8.3.orig/Src/_cmormodule.c	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Src/_cmormodule.c	2013-06-16 17:19:30.000000000 +0100
-@@ -2,6 +2,26 @@
- #include "numpy/arrayobject.h"
- #include "cmor.h"
- 
-+
-+#if PY_MAJOR_VERSION >= 3
-+#define PyInt_AsLong PyLong_AsLong
-+#define PyInt_FromLong PyLong_FromLong
-+#define PyString_AsString PyUnicode_AsUTF8String
-+#endif
-+
-+
-+struct module_state {
-+    PyObject *error;
-+};
-+
-+
-+#if PY_MAJOR_VERSION >= 3
-+#define GETSTATE(m) ((struct module_state*)PyModule_GetState(m))
-+#else
-+#define GETSTATE(m) (&_state)
-+static struct module_state _state;
-+#endif
-+
- static PyObject *
-   PyCMOR_get_original_shape(PyObject *self,PyObject *args)
- {
-@@ -315,7 +335,11 @@
-   char *units; 
-   char *interval; 
-   int length;
-+#if PY_MAJOR_VERSION >= 3
-+  int type;
-+#else
-   char type;
-+#endif
-   void *coord_vals;
-   void *cell_bounds;
-   int cell_bounds_ndim;
-@@ -324,7 +348,11 @@
-   PyArrayObject *coords=NULL,*bounds=NULL;
- 
-   /* HUGE assumtion here is that the data is contiguous! */
-+#if PY_MAJOR_VERSION >=3 
-+  if (!PyArg_ParseTuple(args,"ssiOCOis",&name,&units,&length,&coords_obj,&type,&bounds_obj,&cell_bounds_ndim,&interval))
-+#else
-   if (!PyArg_ParseTuple(args,"ssiOcOis",&name,&units,&length,&coords_obj,&type,&bounds_obj,&cell_bounds_ndim,&interval))
-+#endif
-     return NULL;
- 
-   if (coords_obj == Py_None) {
-@@ -799,11 +827,62 @@
-   {NULL, NULL} /*sentinel */
- };
- 
--PyMODINIT_FUNC init_cmor(void)
-+#if PY_MAJOR_VERSION >= 3
-+
-+static int MyExtract_traverse(PyObject *m, visitproc visit, void *arg) {
-+    Py_VISIT(GETSTATE(m)->error);
-+    return 0;
-+}
-+
-+static int MyExtract_clear(PyObject *m) {
-+    Py_CLEAR(GETSTATE(m)->error);
-+    return 0;
-+}
-+
-+static struct PyModuleDef moduledef = {
-+        PyModuleDef_HEAD_INIT,
-+        "_cmor",
-+        NULL,
-+        sizeof(struct module_state),
-+        MyExtractMethods,
-+        NULL,
-+        MyExtract_traverse,
-+        MyExtract_clear,
-+        NULL
-+};
-+
-+
-+#define INITERROR return NULL
-+
-+PyObject * PyInit__cmor(void)
-+
-+#else
-+#define INITERROR return
-+
-+void init_cmor(void)
-+#endif
-+
- {
--  (void) Py_InitModule("_cmor", MyExtractMethods);
-+#if PY_MAJOR_VERSION >= 3
-+    PyObject *module = PyModule_Create(&moduledef);
-+#else
-+    PyObject *module = Py_InitModule("_cmor", MyExtractMethods);
-+#endif
-   import_array();
--  
-+
-+    if (module == NULL)
-+        INITERROR;
-+    struct module_state *st = GETSTATE(module);
-+
-+    st->error = PyErr_NewException("_cmor.Error", NULL, NULL);
-+    if (st->error == NULL) {
-+        Py_DECREF(module);
-+        INITERROR;
-+    }
-+ 
-+#if PY_MAJOR_VERSION >= 3
-+    return module;
-+#endif 
- }
- 
- /* int main(int argc,char **argv) */
-Index: cmor-2.8.3/Test/test_compression.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_compression.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_compression.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,8 +1,9 @@
-+from __future__ import print_function
- import sys,os
- try:
-     import cdms2
- except:
--    print 'This test requires cdms2 for I/O'
-+    print('This test requires cdms2 for I/O')
-     sys.exit()
-     
- import cmor,numpy
-@@ -44,12 +45,12 @@
- #Now creates a dummy HUGE axis for resizing s as really big
- factor = 100
- nt = s.shape[0]*factor
--print 'nt is:',nt
-+print('nt is:',nt)
- t = numpy.arange(nt)
- 
- tmp = cmor.axis('time',coord_vals=t,units=Saxes[0].units,cell_bounds=numpy.arange(nt+1))
- axes.insert(0,tmp)
--print axes
-+print(axes)
- var_id1 = cmor.variable(s.id,s.units,axes)
- ## the one with 2 at the end is compressed
- var_id2 = cmor.variable(s.id,s.units,axes)
-@@ -58,7 +59,7 @@
- s=numpy.resize(s,sh)
- #s=numpy.where(numpy.greater(s,100.),100,s)
- s=numpy.random.random(s.shape)*100.
--print s.shape
-+print(s.shape)
- cmor.write(var_id1,s)
- cmor.close(var_id1)
- cmor.write(var_id2,s)
-Index: cmor-2.8.3/Test/test_grid_stub_jamie.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_grid_stub_jamie.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_grid_stub_jamie.py	2013-06-15 10:54:40.000000000 +0100
-@@ -71,7 +71,7 @@
-         try:
-             grid([[1], [2]])
-             self.fail('should raise exception')
--        except Exception, e:
-+        except Exception as e:
-             self.assertEquals('error axes list/array must be 1D', str(e))
-             
-     def test_error_on_axis_ids(self):
-@@ -80,7 +80,7 @@
-             try:
-                 grid(axis_ids)
-                 self.fail('should raise exception')
--            except Exception, e:
-+            except Exception as e:
-                 self.assertEquals('Error could not convert axis_ids list to a numpy array',
-                                   str(e))
- 
-@@ -88,14 +88,14 @@
-         try:
-             grid([0], latitude = numpy.arange(2))
-             self.fail('should raise exception')
--        except Exception, e:
-+        except Exception as  e:
-             self.assertEquals("Error could not convert longitude to a numpy array", str(e))
- 
-     def test_error_longitude_no_latitude(self):
-         try:
-             grid([0], longitude = numpy.arange(2))
-             self.fail('should raise exception')
--        except Exception, e:
-+        except Exception as e:
-             self.assertEquals("latitude and longitude must be BOTH an array or None", str(e))
- 
-     def test_error_type_lats(self):
-@@ -104,7 +104,7 @@
-             try:
-                 grid([0, 11], latitude = lats, longitude = lons)
-                 self.fail('should raise exception')
--            except Exception, e:
-+            except Exception as e:
-                 self.assertEquals('Error could not convert latitude to a numpy array', str(e))
-     def test_error_type_lons(self):
-         lats = numpy.arange(2*3).reshape(2,3)
-@@ -112,7 +112,7 @@
-             try:
-                 grid([0, 1], latitude = lats, longitude = lons)
-                 self.fail('should raise exception')
--            except Exception, e:
-+            except Exception as e:
-                 self.assertEquals('Error could not convert longitude to a numpy array', str(e))            
-     def test_error_rank_lons(self):
-         axis_ids = [1, 2]
-@@ -121,7 +121,7 @@
-         try:
-             grid(axis_ids, latitude = lats, longitude = lons)
-             self.fail('should raise exception')
--        except Exception, e:
-+        except Exception as e:
-             self.assertEquals("longitude's rank does not match number of axes passed via axis_ids", str(e))
- 
-     def test_error_rank_lats(self):
-@@ -131,7 +131,7 @@
-         try:
-             grid(axis_ids, latitude = lats, longitude = lons)
-             self.fail('should raise exception')
--        except Exception, e:
-+        except Exception as e:
-             self.assertEquals("latitude's rank does not match number of axes passed via axis_ids", str(e))
- 
-     def test_error_rank_lat_verts(self): # this test may be fragile?
-@@ -143,7 +143,7 @@
-             grid(axis_ids, latitude = lats, longitude = lons,
-                  latitude_vertices = lat_verts)
-             self.fail('should raise exception')
--        except Exception, e:
-+        except Exception as e:
-             self.assertEquals("latitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)",
-             str(e))
- 
-@@ -156,7 +156,7 @@
-             grid(axis_ids, latitude = lats, longitude = lons,
-                  longitude_vertices = lon_verts)
-             self.fail('should raise exception')
--        except Exception, e:
-+        except Exception as e:
-             self.assertEquals("longitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)",
-             str(e))
-             
-Index: cmor-2.8.3/Test/test_python_2Gb_file.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_2Gb_file.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_2Gb_file.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,4 @@
--
-+from __future__ import print_function
- import cmor,numpy
- 
- 
-@@ -37,12 +37,12 @@
- data = numpy.random.random((nlev,nlat,nlon))*30+273.15
- 
- for i in range(ntimes):
--    if i%10==0 : print 'Writing time:',i
-+    if i%10==0 : printi(' Writing time:',i)
-     cmor.write(var,data,time_vals=numpy.array([float(i),]),time_bnds=numpy.array([i,i+1.]))
- 
--print cmor.close(var_id=var,file_name=True)
-+print(cmor.close(var_id=var,file_name=True))
- cmor.close()
- 
- 
- 
--print 'hello'
-+print('hello')
-Index: cmor-2.8.3/Test/test_python_2Gb_slice.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_2Gb_slice.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_2Gb_slice.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,4 @@
--
-+from __future__ import print_function
- import cmor,numpy
- 
- 
-@@ -20,7 +20,7 @@
- 
- levs = numpy.array([1000.,925,900,850,800,700,600,500,400,300,250,200,150,100,75,70,50,30,20,10,7.5,5,2.5,1])
- alllevs = numpy.arange(1000,0,-dlev).tolist()
--print len(alllevs)
-+print(len(alllevs))
- 
- cmor.setup(inpath='.',netcdf_file_action=cmor.CMOR_REPLACE)
- cmor.dataset('historical', 'ukmo', 'pcmdi-10b HadCM3', 'gregorian',model_id='pcmdi-10b',outpath='Test',forcing='N/A', parent_experiment_id="lgm", parent_experiment_rip="r1i1p1",contact="Bruce Bochy",branch_time=0,institute_id="yep")
-@@ -40,12 +40,12 @@
- data = numpy.random.random((nlev,nlat,nlon))*30+273.15
- 
- for i in range(ntimes):
--    if i%10==0 : print 'Writing time:',i
-+    if i%10==0 : print('Writing time:',i)
-     cmor.write(var,data,time_vals=numpy.array([float(i),]),time_bnds=numpy.array([i,i+1.]))
- 
--print cmor.close(var_id=var,file_name=True)
-+print(cmor.close(var_id=var,file_name=True))
- cmor.close()
- 
- 
- 
--print 'hello'
-+print('hello')
-Index: cmor-2.8.3/Test/test_python_3hr.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_3hr.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_3hr.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-@@ -39,7 +40,7 @@
- 
- igrid = cmor.grid(axis_ids=[iloc,itm])
- 
--print igrid
-+print(igrid)
- 
- ilat = cmor.time_varying_grid_coordinate(igrid,table_entry='latitude',units='degrees_north')
- ilon = cmor.time_varying_grid_coordinate(igrid,table_entry='longitude',units='degrees_east')
-Index: cmor-2.8.3/Test/test_python_appending.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_appending.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_appending.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- nlat = 90
-@@ -13,7 +14,7 @@
-     bnds_req=numpy.array(bnds_req)
-     bnds_req.shape=(7,2)
- 
--    print bnds_req[-2], bnds_req.shape
-+    print(bnds_req[-2], bnds_req.shape)
- 
-     levs=[]
- 
-@@ -22,14 +23,14 @@
- 
-     levs=numpy.array(levs)
- 
--    print levs
-+    print(levs)
- 
-     ipth="Test"
-     if append_to is None:
-         mode = cmor.CMOR_REPLACE
-     else:
-         mode = cmor.CMOR_APPEND
--    print 'Mode in python:',mode
-+    print('Mode in python:',mode)
-     cmor.setup(inpath=ipth,
-                set_verbosity=cmor.CMOR_NORMAL,
-                netcdf_file_action = mode,
-@@ -65,22 +66,22 @@
-     #itim = cmor.axis(table_entry='time',units='month since 2008',coord_vals=numpy.arange(0,12,1))
-     ilat = cmor.axis(table_entry='latitude',coord_vals=lats,units='degrees_north',cell_bounds=bnds_lat)
-     ilon = cmor.axis(table_entry='longitude',coord_vals=lons,units='degrees_east',cell_bounds=bnds_lon)
--    print 'so far',itim,ilat,ilon
-+    print('so far',itim,ilat,ilon)
-     ilev = cmor.axis(table_entry="plevs",coord_vals=plevs,units="Pa")
- 
-     iv = cmor.variable(table_entry='ta',axis_ids=numpy.array((itim,ilev,ilat,ilon)),units='K')
- 
-     #cmor.write(iv,data)
-     if append_to is None:
--        print 'time:',time_vals
--        print 'bnds:',cell_bounds
-+        print('time:',time_vals)
-+        print('bnds:',cell_bounds)
-         cmor.write(iv,data,time_vals=time_vals,time_bnds=cell_bounds)#,file_suffix="with-appending")
-     else:
--        print 'Ok writing with a suffix',append_to
-+        print('Ok writing with a suffix',append_to)
-         cmor.write(iv,data,time_vals=time_vals,file_suffix=append_to,time_bnds=cell_bounds)
--        print 'and back'
-+        print('and back')
-     file = cmor.close(iv,file_name=True)
--    print 'Ok dumped to:',file
-+    print('Ok dumped to:',file)
-     cmor.close()
-     return file
- 
-@@ -90,6 +91,6 @@
- 
- 
- f1 = mywrite(data = data[:6], time_vals = numpy.arange(0,6,1),cell_bounds=numpy.arange(0,7,1))
--print 'First part: ',f1
-+print('First part: ',f1)
- f2 = mywrite(data = data[6:], time_vals = numpy.arange(6,12,1), cell_bounds=numpy.arange(6,13,1), append_to=f1)
--print f2
-+print(f2)
-Index: cmor-2.8.3/Test/test_python_bad_date.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_bad_date.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_bad_date.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -22,16 +23,16 @@
-     tbnds = list(tvals)
-     tbnds.append(43200)
-     tbnds=numpy.array(tbnds)-3.
--    print "tvals:",tvals
--    print "tbnds:",tbnds
-+    print("tvals:",tvals)
-+    print("tbnds:",tbnds)
-     import cdtime
-     tunits='hours since 209-01-01 06:00:00'
-     t1=cdtime.reltime(tvals[0],tunits)
-     t2=cdtime.reltime(tvals[-1],tunits)
-     t3=cdtime.reltime(tbnds[-1],tunits)
--    print t1.tocomp(),t1.tocomp(cdtime.Calendar360)
--    print t2.tocomp(),t2.tocomp(cdtime.Calendar360)
--    print t3.tocomp(),t3.tocomp(cdtime.Calendar360)
-+    print(t1.tocomp(),t1.tocomp(cdtime.Calendar360))
-+    print(t2.tocomp(),t2.tocomp(cdtime.Calendar360))
-+    print(t3.tocomp(),t3.tocomp(cdtime.Calendar360))
-     
-     axes = [ {'table_entry': 'time1',
-               'units': tunits,
-@@ -85,7 +86,7 @@
-     cmor_initialisation()
-     values,axes = setup_data()
-     vid = cmor_define_and_write(values, axes)
--    print cmor.close(var_id=vid,file_name=True)
-+    print(cmor.close(var_id=vid,file_name=True))
-     
- if __name__ == '__main__':
- 
-Index: cmor-2.8.3/Test/test_python_bentley_01.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_bentley_01.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_bentley_01.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor
- import numpy
- import cdtime
-@@ -26,7 +27,7 @@
-               'coord_vals': [0]},
-              {'table_entry': 'hybrid_height',
-               'units': 'm',
--              'coord_vals': range(2),
-+              'coord_vals': list(range(2)),
-               'cell_bounds': [[x-0.5, x+0.5] for x in range(2)],
-               },
-              ]
-@@ -45,7 +46,7 @@
- 
-     igrid = cmor.grid([axis_ids[1]], [0.], [0.])
-     cmor.zfactor(axis_ids[2], 'b', axis_ids = [axis_ids[2]],
--                 zfactor_values = range(2),
-+                 zfactor_values = list(range(2)),
-                  zfactor_bounds = [[x-0.5, x+0.5] for x in range(2)])
- 
-     cmor.zfactor(axis_ids[2], 'orog', 'm', axis_ids = [igrid],
-@@ -62,7 +63,7 @@
-     for time in [x * 1800./ 86400 for x in range(48)]:
-         time += 1./3600./24.
-         tr = cdtime.reltime(time,axes[0]["units"])
--        print "Writing: %.03f" % time,"|",tr.tocomp(cdtime.Calendar360),"|",tr.tocomp()
-+        print("Writing: %.03f" % time,"|",tr.tocomp(cdtime.Calendar360),"|",tr.tocomp())
-         cmor.write(varid, values, time_vals = [time])
-     return varid
- 
-@@ -73,7 +74,7 @@
-     values, axes = setup_data()
-     varid = cmor_define_and_write(values, axes)
-     fname =  cmor.close(varid, file_name = True)
--    print "Done:",fname
-+    print("Done:",fname)
- 
-     
- if __name__ == '__main__':
-Index: cmor-2.8.3/Test/test_python_bounds_request.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_bounds_request.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_bounds_request.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- breq = "100000. 80000. 80000. 68000. 68000. 56000. 56000. 44000. 44000. 31000. 31000. 18000. 18000.  0.".split()
-@@ -9,7 +10,7 @@
- bnds_req=numpy.array(bnds_req)
- bnds_req.shape=(7,2)
- 
--print bnds_req[-2], bnds_req.shape
-+print( bnds_req[-2], bnds_req.shape)
- 
- levs=[]
- 
-@@ -18,7 +19,7 @@
- 
- levs=numpy.array(levs)
- 
--print levs
-+print(levs)
- 
- ipth="Test"
- cmor.setup(inpath=ipth,
-@@ -51,7 +52,7 @@
- itim = cmor.axis(table_entry='time',coord_vals=numpy.arange(0,ntime,1),units='month since 2008')
- ilat = cmor.axis(table_entry='latitude',coord_vals=lats,units='degrees_north')
- ilon = cmor.axis(table_entry='longitude',coord_vals=lons,units='degrees_east')
--print 'so far',itim,ilat,ilon
-+print('so far',itim,ilat,ilon)
- ilev = cmor.axis(table_entry="pressure2",coord_vals=levs,cell_bounds=bnds_req,units="Pa")
- 
- iv = cmor.variable(table_entry='ta',axis_ids=numpy.array((itim,ilev,ilat,ilon)),units='K')
-Index: cmor-2.8.3/Test/test_python_cfmip_site_axis_test.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_cfmip_site_axis_test.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_cfmip_site_axis_test.py	2013-06-15 10:54:40.000000000 +0100
-@@ -28,6 +28,7 @@
-       lev:formula_terms = "a: lev b: b orog: orog";
-       ...
- '''
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -64,41 +65,41 @@
-    # Create CMOR axes and grids
-    table_id = cmor.load_table('CMIP5_cfSites')
-    taxis_id = cmor.axis('time1', units='days since 2000-01-01 00:00:00') #, length=1, interval='30 minutes')
--   print 'ok: created time axis'
-+   print('ok: created time axis')
- 
-    saxis_id = cmor.axis('site', units='1', coord_vals=[1,2,3])
--   print 'ok: created site axis',saxis_id
-+   print('ok: created site axis',saxis_id)
- 
-    zaxis_id = cmor.axis('hybrid_height', units='m', coord_vals=[1.0], cell_bounds=[0.0,2.0])
--   print 'ok: created height axis',zaxis_id
-+   print('ok: created height axis',zaxis_id)
- 
-    # Create zfactors for b and orog for hybrid height axis.
-    # Where do these get used, if anywhere?
-    bfact_id = cmor.zfactor(zaxis_id, 'b', '1', [zaxis_id], 'd', zfactor_values=[1.0],
-       zfactor_bounds=[0.0,2.0])
--   print 'ok: created b zfactors'
-+   print('ok: created b zfactors')
- 
-    # Create grid object to link site-dimensioned variables to (lat,long).
-    # Need to make CMIP5_grids the current MIP table for this to work.
-    table_id = cmor.load_table('CMIP5_grids')
-    gaxis_id = cmor.grid([saxis_id], site_lats, site_lons)
--   print 'ok: created site grid'
-+   print('ok: created site grid')
- 
-    # Create CMOR variable for cloud area fraction: MIP name = 'cl', STASH = m01s02i261*100
-    table_id = cmor.load_table('CMIP5_cfSites')
-    var_id = cmor.variable('cl', '%', [taxis_id, gaxis_id, zaxis_id], type='f',
-       missing_value=-99.0, original_name='STASH m01s02i261*100')
--   print 'ok: created variable for "cl"'
-+   print('ok: created variable for "cl"')
- 
-    ofact_id = cmor.zfactor(zaxis_id, 'orog', 'm', [gaxis_id], 'd',
-       zfactor_values=[123.0])
--   print 'ok: created orog zfactors'
-+   print('ok: created orog zfactors')
-    # Write some data to this variable. First convert raw data to numpy arrays.
-    shape = (1, 3, 1)
-    data = numpy.array([10, 20, 30], dtype=numpy.float32)
-    data = data.reshape(shape)
-    cmor.write(var_id, data, time_vals=[1.0])
--   print 'ok: wrote variable data'
-+   print('ok: wrote variable data')
- 
-    # Close CMOR.
-    cmor.close()
-Index: cmor-2.8.3/Test/test_python_clim_bounds.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_clim_bounds.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_clim_bounds.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -37,7 +38,7 @@
- 
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-Index: cmor-2.8.3/Test/test_python_clim_bounds_02.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_clim_bounds_02.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_clim_bounds_02.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -50,7 +51,7 @@
- 
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-Index: cmor-2.8.3/Test/test_python_clim_bounds_03.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_clim_bounds_03.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_clim_bounds_03.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -50,7 +51,7 @@
- 
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-@@ -62,7 +63,7 @@
-                               history = 'variable history',
-                               missing_value = -99
-                               )
--        print values.shape
-+        print(values.shape)
-         
-         cmor.write(varid, values)#, ntimes_passed=1)
- 
-Index: cmor-2.8.3/Test/test_python_clim_bounds_04.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_clim_bounds_04.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_clim_bounds_04.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -50,7 +51,7 @@
-                                [45959, 52925]],}
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-Index: cmor-2.8.3/Test/test_python_YYYMMDDHH_exp_fmt.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_YYYMMDDHH_exp_fmt.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_YYYMMDDHH_exp_fmt.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor
- 
- def path_test():
-@@ -32,7 +33,7 @@
-     cmor.write(varid, [273])
-     path=cmor.close(varid, file_name=True)
- 
--    print "Saved file: ",path
-+    print("Saved file: ",path)
- 
- if __name__ == '__main__':
-     path_test()
-Index: cmor-2.8.3/Test/test_python_direct_calls.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_direct_calls.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_direct_calls.py	2013-06-16 17:20:26.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- import cmor._cmor
- import os
-@@ -32,7 +33,7 @@
- a = cmor._cmor.load_table("Tables/CMIP5_Omon")
- tables.append(a)
- tables.append(cmor._cmor.load_table("Tables/CMIP5_Amon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- 
- axes=[]
-@@ -48,7 +49,7 @@
- myaxes[2] = cmor._cmor.axis(id,units,lon,alons,'d',bnds_lon,2,interval)
- id="plevs"
- units="Pa"
--print plevs.astype("d")
-+print(plevs.astype("d"))
- myaxes[3] = cmor._cmor.axis(id,units,lev2,plevs.astype("d"),'d',None,0,interval)
- 
- 
-@@ -75,31 +76,31 @@
- myaxes2[2] = myaxes[1];
- myaxes2[3] = myaxes[2];
- 
--print 'ok doing the vars thing'
-+print('ok doing the vars thing')
- myvars[0] = cmor._cmor.variable(entry2d[0],units2d[0],3,myaxes,'d',None,dtmp2,positive2d[0],varin2d[0],"no history","no future")
--print 'vars 2'
-+print('vars 2')
- myvars[1] = cmor._cmor.variable(entry3d[2],units3d[2],4,myaxes2,'d',None,dtmp2,"",varin3d[2],"no history","no future")
--print 'vars 2'
-+print('vars 2')
- 
- myaxes2[1] = myaxes[4];
- myvars[2] = cmor._cmor.variable(entry3d[0],units3d[0],4,myaxes2,'d',None,dtmp2,"",varin3d[0],"no history","no future")
- 
--print 'vars 2'
-+print('vars 2')
- 
--print 'zfact',type(numpy.array(myaxes2[1])),type(myaxes2)
-+print('zfact',type(numpy.array(myaxes2[1])),type(myaxes2))
- 
- myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"p0","Pa",0,None,'d',p0,None)
--print 'zfact',myaxes2[1]
-+print('zfact',myaxes2[1])
- myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"b","",1,myaxes2[1],'d',b_coeff,b_coeff_bnds)
--print 'zfact',myaxes2[1]
-+print('zfact',myaxes2[1])
- myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"a","",1,myaxes2[1],'d',a_coeff,a_coeff_bnds)
- #/*   printf("defining ap\n"); */
- #/*   for(i=0;i<5;i++) {a_coeff[i]*=1.e3;printf("sending acoef: %i, %lf\n",i,a_coeff[i]);} */
- #/*   for(i=0;i<6;i++) {a_coeff_bnds[i]*=1.e5;printf("sending acoef: %i, %lf\n",i,a_coeff_bnds[i]);} */
- #/*   ierr = cmor_zfactor(&myvars[3],myaxes2[1],"ap","hPa",1,&myaxes2[1],'d',&a_coeff,&a_coeff_bnds); */
--print 'zfact before last'
-+print('zfact before last')
- myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"ps","hPa",3,myaxes,'d',None,None)
--print 'zfact last'
-+print('zfact last')
- 
- #  /* ok here we decalre a variable for region axis testing */
- cmor.set_table(tables[0])
-@@ -114,7 +115,7 @@
- 
- for i in range(ntimes):
-     data2d = read_2d_input_files(i, varin2d[0], lat,lon)
--    print 'writing time',i,data2d.shape,data2d,numpy.average(data2d)
-+    print('writing time',i,data2d.shape,data2d,numpy.average(data2d))
-     cmor._cmor.write(myvars[0],numpy.ravel(data2d),data2d.dtype.char,"",1,None,None,None);
- 
- cmor._cmor.close(None,0,0)
-Index: cmor-2.8.3/Test/test_python_fx.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_fx.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_fx.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -45,4 +46,4 @@
-     fnm = cmor.close(varid,file_name=True)
-     cmor.close()
-     return fnm
--print test_mode(cmor.CMOR_REPLACE)
-+print(test_mode(cmor.CMOR_REPLACE))
-Index: cmor-2.8.3/Test/test_python_grid_and_ocn_sigma.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_grid_and_ocn_sigma.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_grid_and_ocn_sigma.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,4 @@
--
-+from __future__ import print_function
- import cmor,numpy
- import os
- ntimes=2
-@@ -43,7 +43,7 @@
-             lat_vertices[j,i,1] = lat_coords[j,i]-delta_lat;
-             lat_vertices[j,i,2] = lat_coords[j,i];
-             lat_vertices[j,i,3] = lat_coords[j,i]+delta_lat;
--    print lat_vertices.min(),'---------------------'
-+    print(lat_vertices.min(),'---------------------')
-     return x,y,lon_coords,lat_coords,lon_vertices,lat_vertices
- 
- 
-@@ -86,12 +86,12 @@
- a = cmor.load_table("Tables/CMIP5_grids")
- tables.append(a)
- tables.append(cmor.load_table("Tables/CMIP5_Omon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
- x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
--print lon_vertices.shape,lat_vertices.shape,x.shape,y.shape
-+print(lon_vertices.shape,lat_vertices.shape,x.shape,y.shape)
- 
- myaxes[1] = cmor.axis(table_entry = 'y', 
-                       units = 'm', 
-@@ -100,13 +100,13 @@
-                       units = 'm', 
-                       coord_vals = x)
- 
--print 'lons:',lon_vertices.shape,lon_coords.shape
-+print('lons:',lon_vertices.shape,lon_coords.shape)
- grid_id = cmor.grid(axis_ids = myaxes[:2], 
-                     latitude = lat_coords, 
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- ## mapnm = 'lambert_conformal_conic'
-@@ -127,19 +127,19 @@
- # Now sets up the ocn sigma stuff
- levs=-numpy.arange(lev)/float(lev+1.)
- blevs=-numpy.arange(lev+1)/float(lev+1.)
--print 'Defining zlevs'
-+print('Defining zlevs')
- myaxes[4] = cmor.axis(table_entry='ocean_sigma',coord_vals=levs,cell_bounds=blevs,units='1')
- 
--print 'definnig zfactor depth',myaxes[2]
-+print('definnig zfactor depth',myaxes[2])
- depth = numpy.random.random((lon,lat))*5000.
--print 'Depth:',depth.shape,depth.dtype
-+prints( 'Depth:',depth.shape,depth.dtype)
- idpth = cmor.zfactor(zaxis_id=myaxes[4],units='m',zfactor_name='depth',axis_ids=numpy.array([myaxes[2],]),zfactor_values=depth)
- 
--print 'defining zfactor eta'
-+print('defining zfactor eta')
- ieta = cmor.zfactor(zaxis_id=myaxes[4],units='m',zfactor_name='eta',axis_ids=[myaxes[2],myaxes[3]])
--print 'ieta:',ieta
-+print('ieta:',ieta)
- pass_axes = [myaxes[4],myaxes[2],myaxes[3]]
--print 'defining variable'
-+print('defining variable')
- myvars[0] = cmor.variable( table_entry = 'thetao',
-                            units = 'K',
-                            axis_ids = pass_axes,
-@@ -154,8 +154,8 @@
-     eta = numpy.random.random((lon,lat,ntimes))*10000.
-     #print 'writing time: ',i,data3d.shape,data3d
-     #print Time[i],bnds_time[2*i:2*i+2]
--    print 'Writing time',i,'for var',data3d.shape
-+    print('Writing time',i,'for var',data3d.shape)
-     cmor.write(myvars[0],data3d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
--    print 'Writing time',i,'for eta'
-+    print('Writing time',i,'for eta')
-     cmor.write(ieta,eta,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2],store_with=myvars[0])
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_index_coord.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_index_coord.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_index_coord.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- ipth="Test"
-@@ -41,4 +42,4 @@
- cmor.write(iv,data)
- 
- f1 = cmor.close(iv,file_name=True)
--print f1
-+print(f1)
-Index: cmor-2.8.3/Test/test_python_jamie_10.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_jamie_10.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_jamie_10.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -37,7 +38,7 @@
- 
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-Index: cmor-2.8.3/Test/test_python_jamie_12.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_jamie_12.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_jamie_12.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
- #!/usr/bin/env python
--
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -9,7 +9,7 @@
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
--    print 'MY:cmor.axis calls complete'
-+    print('MY:cmor.axis calls complete')
-     return axis_ids
- 
- def define_write_var(axis_ids, entry, unit, values):
-Index: cmor-2.8.3/Test/test_python_jamie_2.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_jamie_2.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_jamie_2.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor
- 
- def multi_call_test():
-@@ -31,15 +32,15 @@
-         axis_ids.append(axis_id)
-     varid = cmor.variable('ts', 'K', axis_ids)
-     cmor.write(varid, [275], time_vals = [15], time_bnds = [ [0,30] ])
--    print 'First write worked as expected'
-+    print('First write worked as expected')
-     try:
-         cmor.write(varid, [275], time_vals = [15], time_bnds = [ [0], [30] ])
--        raise Exception,"We shouldn't be getting in here"
-+        raise Exception("We shouldn't be getting in here")
-     except:
--        print 'Second write that should have failed did fail, good!'
-+        print('Second write that should have failed did fail, good!')
-         pass
-     cmor.close(varid)
--    print 'Success'
-+    print('Success')
- 
- 
- if __name__ == '__main__':
-Index: cmor-2.8.3/Test/test_python_jamie_6.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_jamie_6.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_jamie_6.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-@@ -106,7 +107,7 @@
-         units='m' ,
-         zfactor_values = data2d)
- else:
--    print 'yep working case'
-+    print('yep working case')
-     ilev = cmor.axis(  
-         table_entry='standard_sigma',       
-         units='1',
-Index: cmor-2.8.3/Test/test_python_jamie_8.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_jamie_8.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_jamie_8.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
- #!/usr/bin/env python
--
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -9,7 +9,7 @@
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
--    print 'cmor.axis calls complete'
-+    print('cmor.axis calls complete')
-     return axis_ids
- 
- def define_write_var(axis_ids, entry, unit, values):
-@@ -19,11 +19,11 @@
-                           missing_value = -99
-                           )
- 
--    print 'cmor.variable call complete'
-+    print('cmor.variable call complete')
-     
-     cmor.write(varid, values, time_vals = [15.0], time_bnds = [0., 30.0])
- 
--    print 'cmor.write call complete'
-+    print('cmor.write call complete')
- 
- 
- def cmor_ini():
-Index: cmor-2.8.3/Test/test_python_jamie_9.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_jamie_9.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_jamie_9.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -37,7 +38,7 @@
- 
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-Index: cmor-2.8.3/Test/test_python_jamie_site_surface.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_jamie_site_surface.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_jamie_site_surface.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -55,7 +56,7 @@
-     cmor_initialisation()
-     values, axes = setup_data()
-     cmor_define_and_write(values, axes)
--    print cmor.close(file_name=True)
-+    print(cmor.close(file_name=True))
-     
- if __name__ == '__main__':
- 
-Index: cmor-2.8.3/Test/test_python_joerg_10.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_10.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_10.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -42,7 +43,7 @@
- a = cmor.load_table("Tables/CMIP5_grids")
- tables.append(a)
- tables.append(cmor.load_table("Tables/CMIP5_Omon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
-@@ -62,7 +63,7 @@
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- ## mapnm = 'lambert_conformal_conic'
-@@ -83,7 +84,7 @@
- 
- pass_axes = [myaxes[3],myaxes[2]]
- 
--print 'ok going to cmorvar'
-+print('ok going to cmorvar')
- myvars[0] = cmor.variable( table_entry = 'calc',
-                            units = 'mol m-3',
-                            axis_ids = pass_axes,
-@@ -97,7 +98,7 @@
-     data2d_1 = read_2d_input_files(i,   varin2d[0], lat,lon)
-     data2d_2 = read_2d_input_files(i+1, varin2d[0], lat,lon)
-     data2d=numpy.array((data2d_1,data2d_2))
--    print 'writing time: ',i,data2d.shape,data2d
--    print Time[i:i+2],bnds_time[2*i:2*i+4]    
-+    print('writing time: ',i,data2d.shape,data2d)
-+    print(Time[i:i+2],bnds_time[2*i:2*i+4])
-     cmor.write(myvars[0],data2d,2,time_vals=numpy.arange(i,i+2),time_bnds=numpy.arange(i,i+3))
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_joerg_11.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_11.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_11.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -41,7 +42,7 @@
- a = cmor.load_table("Tables/CMIP5_grids")
- tables.append(a)
- tables.append(cmor.load_table("Tables/CMIP5_Omon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
-@@ -61,7 +62,7 @@
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- ## mapnm = 'lambert_conformal_conic'
-@@ -85,7 +86,7 @@
- 
- pass_axes = [myaxes[3],myaxes[4]]
- 
--print 'ok going to cmorvar'
-+print('ok going to cmorvar')
- myvars[0] = cmor.variable( table_entry = 'mfo',
-                            units = 'kg s-1',
-                            axis_ids = pass_axes,
-@@ -94,7 +95,7 @@
-                            )
- for i in range(ntimes):
-     data2d = numpy.random.random((1,15))
--    print 'writing time: ',i,data2d.shape,data2d
--    print Time[i],bnds_time[2*i:2*i+2]    
-+    print('writing time: ',i,data2d.shape,data2d)
-+    print(Time[i],bnds_time[2*i:2*i+2]    )
-     cmor.write(myvars[0],data2d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_joerg_12.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_12.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_12.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -41,7 +42,7 @@
- a = cmor.load_table("Tables/CMIP5_grids")
- tables.append(a)
- tables.append(cmor.load_table("Tables/CMIP5_Lmon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
-@@ -61,7 +62,7 @@
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- ## mapnm = 'lambert_conformal_conic'
-@@ -85,7 +86,7 @@
- 
- pass_axes = [myaxes[2],myaxes[3],myaxes[4]]
- 
--print 'ok going to cmorvar'
-+print('ok going to cmorvar')
- myvars[0] = cmor.variable( table_entry = 'landCoverFrac',
-                            units = '%',
-                            axis_ids = pass_axes,
-@@ -94,7 +95,7 @@
-                            )
- for i in range(ntimes):
-     data2d = numpy.random.random((3,4,3))
--    print 'writing time: ',i,data2d.shape,data2d
--    print Time[i],bnds_time[2*i:2*i+2]    
-+    print('writing time: ',i,data2d.shape,data2d)
-+    print(Time[i],bnds_time[2*i:2*i+2]    )
-     cmor.write(myvars[0],data2d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_joerg_2.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_2.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_2.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -57,7 +58,7 @@
-               'coord_vals': levels},
-              ]
-     
--    values = numpy.array(range(len(levels)), numpy.float32)+195
-+    values = numpy.array(list(range(len(levels))), numpy.float32)+195
-     axis_ids = list()
-     for axis in axes:
-         axis_id = cmor.axis(**axis)
-@@ -70,7 +71,7 @@
-                               history = 'variable history',
-                               missing_value = -99
-                               )
--        print 'suffix is:',suffix
-+        print('suffix is:',suffix)
-         cmor.write(varid, values, time_vals = [i], time_bnds = [ [i,i+1] ],file_suffix=suffix)
- 
-     fnm = cmor.close(varid,file_name=True)
-@@ -79,7 +80,7 @@
-     
- fnm=''
- for i in range(5):
--    print i,fnm
-+    print(i,fnm)
-     if i==0:
-         mode = cmor.CMOR_REPLACE
-     else:
-Index: cmor-2.8.3/Test/test_python_joerg_3.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_3.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_3.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- ntimes=1
-@@ -127,24 +128,24 @@
-     for i in range(4):
-         tval = [i/4.+d]
-         tbnd = [i/4.+d-.125,i/4.+d+.125]
--        print 'writing time:',i,i/4.,file_suffix1
-+        print('writing time:',i,i/4.,file_suffix1)
-         data=numpy.random.random((ntimes,nlev,nlat,nlon))*30.+273
-         data=data.astype("f")
-         cmor.write(ivar1,data,time_vals=tval,time_bnds=tbnd,file_suffix=file_suffix1)
--        print 'wrote var 1 time:',i
-+        print('wrote var 1 time:',i)
-         data=numpy.random.random((ntimes,nlev,nlat,nlon))
-         data=data.astype("f")
-         cmor.write(ivar2,data,time_vals=tval,time_bnds=tbnd,file_suffix=file_suffix2)
--        print 'wrote var 2 time:',i
-+        print('wrote var 2 time:',i)
-         data=numpy.random.random((ntimes,nlat,nlon))*8.+96300.
-         data=data.astype("f")
-         cmor.write(ips1,data,store_with=ivar1,ntimes_passed=1,time_vals=tval,time_bnds=tbnd)
--        print 'wrote ps in var 1 time:',i
-+        print('wrote ps in var 1 time:',i)
-         cmor.write(ips2,data,store_with=ivar2,ntimes_passed=1,time_vals=tval,time_bnds=tbnd)
--        print 'wrote ps in var 2 time:',i
-+        print('wrote ps in var 2 time:',i)
-     file_suffix1=cmor.close(ivar1,True)
-     file_suffix2=cmor.close(ivar2,True)
--    print 'File:',file_suffix1,file_suffix2
-+    print('File:',file_suffix1,file_suffix2)
-     cmor.close()
--print cmor.close(ivar1,True)
-+print(cmor.close(ivar1,True))
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_joerg_8.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_8.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_8.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -41,7 +42,7 @@
- a = cmor.load_table("Tables/CMIP5_grids")
- tables.append(a)
- tables.append(cmor.load_table("Tables/CMIP5_Omon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
-@@ -61,7 +62,7 @@
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- ## mapnm = 'lambert_conformal_conic'
-@@ -82,7 +83,7 @@
- 
- pass_axes = [myaxes[3],myaxes[2]]
- 
--print 'ok going to cmorvar'
-+print('ok going to cmorvar')
- myvars[0] = cmor.variable( table_entry = 'epc100',
-                            units = 'mol m-2 s-1',
-                            axis_ids = pass_axes,
-@@ -93,7 +94,7 @@
-                            )
- for i in range(ntimes):
-     data2d = read_2d_input_files(i, varin2d[0], lat,lon)
--    print 'writing time: ',i,data2d.shape,data2d
--    print Time[i],bnds_time[2*i:2*i+2]    
-+    print('writing time: ',i,data2d.shape,data2d)
-+    print(Time[i],bnds_time[2*i:2*i+2]    )
-     cmor.write(myvars[0],data2d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_joerg_9.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_9.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_9.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy,cdms2
- 
- f=cdms2.open("Test/GR30s_halo.nc")
-@@ -75,7 +76,7 @@
- 
- fnm=""
- for i in range(ntimes):
--    print 'writing time:',time_vals[i],bnds_time[i:i+2]
-+    print('writing time:',time_vals[i],bnds_time[i:i+2])
-     data = numpy.random.random((nlon,nlat))
-     error_flag = cmor.write(                        
-         var_id            = var_ids,                 
-@@ -86,6 +87,6 @@
-         time_bnds         = bnds_time[i:i+2])
- 
-     fnm = cmor.close(var_ids,file_name=True,preserve=True)
--    print 'dumped to:',fnm
-+    print('dumped to:',fnm)
- 
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_joerg_tim2_clim.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_joerg_tim2_clim.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_joerg_tim2_clim.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -40,12 +41,12 @@
- 
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-     for var, units, value in (('difvso', 'm2 s-1', 274.),):
--        values = numpy.ones(map(lambda x: len(x["coord_vals"]),axes))*value
-+        values = numpy.ones([len(x["coord_vals"]) for x in axes])*value
-         varid = cmor.variable(var,
-                               units,
-                               axis_ids,
-Index: cmor-2.8.3/Test/test_python_max_variables_2.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_max_variables_2.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_max_variables_2.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-@@ -84,11 +85,11 @@
- 
-     if (it == ntimes-1) :
-         fnm = cmor.close(var3d_ids, True)
--        print it,fnm
-+        print(it,fnm)
-     else:
-         if (it%50)== 0:
-             fnm = cmor.close(var3d_ids, True, True)
--            print it,fnm
-+            print(it,fnm)
-         else:
-             ierr = cmor.close(var3d_ids, False, True)
- 
-Index: cmor-2.8.3/Test/test_python_memory_check.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_memory_check.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_memory_check.py	2013-06-15 10:54:40.000000000 +0100
-@@ -5,7 +5,7 @@
- 
- Memory stats are taken from http://code.activestate.com/recipes/286222/
- '''
--
-+from __future__ import print_function
- import os
- 
- _proc_status = '/proc/%d/status' % os.getpid()
-@@ -124,7 +124,7 @@
-             cmor.write(varid, [275])
-         mem,res,stk = memory_usage(sys.stdout,mem,res,stk)
-         #mem,res,stk = memory_usage(sys.stdout,memi,resi,stki)
--        print '---'
-+        print('---')
-     
-     cmor.close(varid)
- 
-Index: cmor-2.8.3/Test/test_python_open_close_cmor_multiple.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_open_close_cmor_multiple.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_open_close_cmor_multiple.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,4 @@
--
-+from __future__ import print_function
- import cmor,numpy
- 
- 
-@@ -50,10 +50,10 @@
- 
-     cmor.write(var,data)
-     path=cmor.close(var, file_name=True)
--    print 'Saved in:',path
-+    print('Saved in:',path)
- 
- cmor.close()
- 
- 
- 
--print 'hello'
-+print('hello')
-Index: cmor-2.8.3/Test/test_python_reverted_lats.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_reverted_lats.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_reverted_lats.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- import cmor,numpy
- 
- nlat = 10
-@@ -34,7 +35,7 @@
- cmor.write(ivar,data,ntimes_passed=1,time_vals=[0.],time_bnds=[0.,1.])
- fnm = cmor.close(ivar,file_name=True)
- 
--print '*******************************'
-+print('*******************************')
- 
- ivar2 = cmor.variable(table_entry='tasmin',units='K',axis_ids=[itim,ilat2,ilon])
- cmor.write(ivar2,data,ntimes_passed=1,time_vals=[1.],time_bnds=[1.,2.])
-Index: cmor-2.8.3/Test/test_python_singleton_anywhere_in_table_def.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_singleton_anywhere_in_table_def.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_singleton_anywhere_in_table_def.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
- #!/usr/bin/env python
--
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -56,7 +56,7 @@
- tscl=2.e-2
- 
- tables.append(cmor.load_table("/git/cmip5-cmor-tables/Tables/%s" % t))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
-@@ -76,7 +76,7 @@
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- mapnm = 'lambert_conformal_conic'
-@@ -107,8 +107,8 @@
- ntimes=2
- for i in range(ntimes):
-     data2d = read_2d_input_files(i, varin2d[0], lat,lon)*1.E-6
--    print 'writing time: ',i,data2d.shape#,data2d
-+    print('writing time: ',i,data2d.shape)#,data2d)
-     #print Time[i],bnds_time[2*i:2*i+2]    
-     cmor.write(myvars[0],data2d,1,time_vals=Time[i]*tscl,time_bnds=tscl*bnds_time[2*i:2*i+2])
--    print 'wrote'
-+    print('wrote')
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_singleton_string.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_singleton_string.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_singleton_string.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,5 +1,5 @@
- #!/usr/bin/env python
--
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -56,7 +56,7 @@
- tscl=3.5e-4
- 
- tables.append(cmor.load_table("/git/cmip5-cmor-tables/Tables/%s" % t))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
-@@ -76,7 +76,7 @@
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- mapnm = 'lambert_conformal_conic'
-@@ -107,8 +107,8 @@
- ntimes=2
- for i in range(ntimes):
-     data2d = read_2d_input_files(i, varin2d[0], lat,lon)*1.E-6
--    print 'writing time: ',i,data2d.shape#,data2d
--    print Time[i],bnds_time[2*i:2*i+2]    
-+    print('writing time: ',i,data2d.shape)#,data2d)
-+    print(Time[i],bnds_time[2*i:2*i+2]    )
-     cmor.write(myvars[0],data2d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
--    print 'wrote'
-+    print('wrote')
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_stephanie_6hrPlev_minutes.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_stephanie_6hrPlev_minutes.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_stephanie_6hrPlev_minutes.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,5 @@
- #!/usr/bin/env python
-+from __future__ import print_function
- import cmor
- import numpy
- 
-@@ -37,7 +38,7 @@
- 
-     axis_ids = list()
-     for axis in axes:
--        print 'doing:',axis
-+        print('doing:',axis)
-         axis_id = cmor.axis(**axis)
-         axis_ids.append(axis_id)
- 
-Index: cmor-2.8.3/Test/test_python_user_interface_00.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_user_interface_00.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_user_interface_00.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -40,18 +41,18 @@
- a = cmor.load_table(os.path.join(ipth,"../Tables/CMIP5_Omon"))
- tables.append(a)
- tables.append(cmor.load_table("Tables/CMIP5_Amon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- axes=[]
- id="time"
- units="months since 1980"
--print 'time bounds:',bnds_time
-+print('time bounds:',bnds_time)
- # ok we need to make the bounds 2D because the cmor module "undoes this"
- bnds_time = numpy.reshape(bnds_time,(bnds_time.shape[0]/2,2))
- bnds_lat = numpy.reshape(bnds_lat,(bnds_lat.shape[0]/2,2))
- bnds_lon = numpy.reshape(bnds_lon,(bnds_lon.shape[0]/2,2))
- myaxes[0] = cmor.axis(id,coord_vals=Time,units=units,cell_bounds=bnds_time,interval="1 month")
--print 'time bounds:',bnds_time
-+print('time bounds:',bnds_time)
- id='latitude'
- units="degrees_north"
- interval=""
-@@ -87,30 +88,30 @@
- myaxes2[2] = myaxes[1];
- myaxes2[3] = myaxes[2];
- 
--print 'ok doing the vars thing',positive2d[0]
-+print('ok doing the vars thing',positive2d[0])
- myvars[0] = cmor.variable(entry2d[0],units2d[0],myaxes[:3],'d',missing_value=None,tolerance=dtmp2,positive=positive2d[0],original_name=varin2d[0],history="no history",comment="no future")
--print 'vars 2'
-+print('vars 2')
- myvars[1] = cmor.variable(entry3d[2],units3d[2],myaxes2[:4],'d',original_name = varin3d[2])
--print 'vars 2'
-+print('vars 2')
- 
- myaxes2[1] = myaxes[4];
- myvars[2] = cmor.variable(entry3d[0],units3d[0],myaxes2[:4],'d',original_name = varin3d[0])
- 
--print 'vars 2'
-+print('vars 2')
- 
- 
- myvars[3] = cmor.zfactor(int(myaxes2[1]),"p0","Pa",None,'d',p0)
--print 'zfact',myaxes2[1]
-+print('zfact',myaxes2[1])
- myvars[3] = cmor.zfactor(int(myaxes2[1]),"b","",myaxes2[1],'d',b_coeff,b_coeff_bnds)
--print 'zfact',myaxes2[1]
-+print('zfact',myaxes2[1])
- myvars[3] = cmor.zfactor(int(myaxes2[1]),"a","",myaxes2[1],'d',a_coeff,a_coeff_bnds)
- #/*   printf("defining ap\n"); */
- #/*   for(i=0;i<5;i++) {a_coeff[i]*=1.e3;printf("sending acoef: %i, %lf\n",i,a_coeff[i]);} */
- #/*   for(i=0;i<6;i++) {a_coeff_bnds[i]*=1.e5;printf("sending acoef: %i, %lf\n",i,a_coeff_bnds[i]);} */
- #/*   ierr = cmor_zfactor(&myvars[3],myaxes2[1],"ap","hPa",1,&myaxes2[1],'d',&a_coeff,&a_coeff_bnds); */
--print 'zfact before last'
-+print('zfact before last')
- myvars[3] = cmor.zfactor(zaxis_id = myaxes2[1],zfactor_name = "ps",units = "hPa",axis_ids = myaxes[:3],type = 'd')
--print 'zfact last'
-+print('zfact last')
- 
- #  /* ok here we decalre a variable for region axis testing */
- cmor.set_table(tables[0])
-@@ -125,7 +126,7 @@
- 
- for i in range(ntimes):
-     data2d = read_2d_input_files(i, varin2d[0], lat,lon)
--    print 'writing time: ',i,data2d.shape,data2d
-+    print('writing time: ',i,data2d.shape,data2d)
-     cmor.write(myvars[0],data2d,1)
- 
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_user_interface_01.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_user_interface_01.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_user_interface_01.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,3 +1,4 @@
-+from __future__ import print_function
- from test_python_common import * # common subroutines
- 
- import cmor._cmor
-@@ -41,7 +42,7 @@
- a = cmor.load_table("Tables/CMIP5_grids")
- tables.append(a)
- tables.append(cmor.load_table("Tables/CMIP5_Amon"))
--print 'Tables ids:',tables
-+print('Tables ids:',tables)
- 
- cmor.set_table(tables[0])
- 
-@@ -61,7 +62,7 @@
-                     longitude = lon_coords, 
-                     latitude_vertices = lat_vertices, 
-                     longitude_vertices = lon_vertices)
--print 'got grid_id:',grid_id
-+print('got grid_id:',grid_id)
- myaxes[2] = grid_id
- 
- mapnm = 'lambert_conformal_conic'
-@@ -91,7 +92,7 @@
-                            )
- for i in range(ntimes):
-     data2d = read_2d_input_files(i, varin2d[0], lat,lon)
--    print 'writing time: ',i,data2d.shape,data2d
--    print Time[i],bnds_time[2*i:2*i+2]    
-+    print('writing time: ',i,data2d.shape,data2d)
-+    print(Time[i],bnds_time[2*i:2*i+2]    )
-     cmor.write(myvars[0],data2d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
- cmor.close()
-Index: cmor-2.8.3/Test/test_python_user_interface_03.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_user_interface_03.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_user_interface_03.py	2013-06-15 10:56:19.000000000 +0100
-@@ -1,11 +1,12 @@
-+from __future__ import print_function
- import numpy
- import cmor
- 
--print 'Done importing'
-+print('Done importing')
- try:
-     import cdms2
- except:
--    print "This test code needs cdms2 interface for i/0"
-+    print("This test code needs cdms2 interface for i/0")
-     import sys
-     sys.exit()
- import os
-@@ -44,7 +45,7 @@
-             id=cmor.axis(table_entry='latitude',units=ax.units,coord_vals=ax[:],cell_bounds=ax.getBounds())
-         else:
-             id=cmor.axis(table_entry=str(ax.id),units=ax.units,coord_vals=ax[:],cell_bounds=ax.getBounds())
--            print i,'units:',ax.units, ax[0]
-+            print(i,'units:',ax.units, ax[0])
-         axes.append(id)
-     var = cmor.variable(table_entry = data.id,
-                         units = data.units,
-@@ -84,13 +85,13 @@
- 
- 
- for var in ['tas',]:
--    print 'Testing var:',var
-+    print('Testing var:',var)
-     orders = ['tyx...','txy...','ytx...','yxt...','xyt...','xty...',]
-     for o in orders:
--        print '\tordering:',o
-+        print('\tordering:',o)
-         data,data_ordered = read_input(var,order=o)
-         prep_cmor()
--        print data.shape
-+        print(data.shape)
-         var_id = prep_var(data)
-         df = data.filled(data.missing_value)
-         cmor.write(var_id,df)
-@@ -100,8 +101,8 @@
-         if not numpy.allclose(s,data_ordered):
-             raise "Error reordering: %s"%o
-         else:
--            print 'order: %s, passed' % o
-+            print('order: %s, passed' % o)
-         f.close()
--print 'Done'
-+print('Done')
- #cmor.close()
--print 'Finito'
-+print('Finito')
-Index: cmor-2.8.3/Lib/cmor_const.py
-===================================================================
---- cmor-2.8.3.orig/Lib/cmor_const.py	2013-06-15 10:54:40.000000000 +0100
-+++ cmor-2.8.3/Lib/cmor_const.py	2013-06-15 10:54:40.000000000 +0100
-@@ -1,4 +1,4 @@
--import _cmor
-+from . import _cmor
- atts = """
- CMOR_MAX_STRING
- CMOR_MAX_ELEMENTS
-Index: cmor-2.8.3/Test/test_python_common.py
-===================================================================
---- cmor-2.8.3.orig/Test/test_python_common.py	2013-06-15 09:11:22.000000000 +0100
-+++ cmor-2.8.3/Test/test_python_common.py	2013-06-15 11:01:29.000000000 +0100
-@@ -105,7 +105,7 @@
-   for k in range(n2):
-     for j in range(n1):
-       for i in range(n0):
--	field[k,j,i] = (k*64 + j*16 + i*4 + it)*factor - offset;
-+        field[k,j,i] = (k*64 + j*16 + i*4 + it)*factor - offset;
-   return field
- 
- 
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index 108ea0f..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1,11 +0,0 @@
-# clean.patch
-shlib-link.patch
-pkgconfig.patch
-makefile-fix.patch
-ld-no-add-needed.patch
-destdir.patch
-cmor_ver.patch
-# python3.patch
-silence-warning.patch
-fix-makefile.patch
-
diff --git a/debian/patches/shlib-link.patch b/debian/patches/shlib-link.patch
deleted file mode 100644
index 07fa8d2..0000000
--- a/debian/patches/shlib-link.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Bugfix to link libcmor.so.2 against -lossp-uuid
-Last-Updated: 2013-06-13
-Forwarded: no
-
-Index: cmor-2.9.1/Makefile.in
-===================================================================
---- cmor-2.9.1.orig/Makefile.in
-+++ cmor-2.9.1/Makefile.in
-@@ -34,6 +34,8 @@ MACROS=@MACROS@
- 
- # Library name
- LIBNAME=libcmor.a
-+SONAME := libcmor.so.2
-+SHLIBFLAGS:= -Wl,-O1 -Wl,-soname,$(SONAME) -Wl,--version-script,cmor.ver -lgfortran
- 
- # Library sources
- #LIBSOURCES=Src/cmor.c Src/cmor_variables.c Src/cmor_axes.c Src/cmor_tables.c Src/cmor_grids.c Src/cdTime/cdTimeConv.c Src/cdTime/cdUtil.c Src/cdTime/timeConv.c Src/cdTime/timeArith.c
-@@ -48,39 +50,58 @@ INCFILES=@INCFILES@
- # Temporary Files
- TMPFILES=*~ $(LIBFILES) *.mod a.out *.stb Test/*.nc Test/IPCC_Fourth_Assessment *.LOG* *.dSYM Test/IPCC Test/CMIP5 CMIP5
- DISTFILES=libcmor.a
--DEPEND= makedepend -c ${DEBUG} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS}
-+DEPEND= makedepend -c ${DEBUG} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS}
- 
- all:    cmor
- 	@echo
-+
-+
-+PIC_OBJS = $(patsubst %.c, %.pic_o, $(LIBSOURCES)) $(patsubst %.f90,%.pic_o, $(LIBFSOURCES))
-+
-+%.pic_o: %.c
-+	@CC@ @CPPFLAGS@  -I/usr/include/ossp -fstack-protector --param=ssp-buffer-size=4 \
-+		-Wformat -Wformat-security -Werror=format-security  -D_FORTIFY_SOURCE=2 \
-+		-fPIC -c -o $@  @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @ZFLAGS@  $<
-+
-+%.pic_o: %.f90
-+	@FC@ -c -o $@ -fPIC @FCFLAGS@ @DEBUG@ @MACROS@  $<
-+
-+shlib $(SONAME):   $(PIC_OBJS)
-+	$(CC) -shared  -o $(SONAME) $(LDFLAGS) $(SHLIBFLAGS)  $(PIC_OBJS)  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @ZFLAGS@ 
-+install_shlib: $(SONAME)
-+	mkdir -p $(DESTDIR)@prefix@/lib
-+	cp -p $(SONAME) $(DESTDIR)@prefix@/lib
-+
- depend:  $(LIBSOURCES)
- 	${DEPEND}  $(LIBSOURCES)
- cmor.o: Src/cmor.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cmor.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cmor.c
- cmor_variables.o: Src/cmor_variables.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cmor_variables.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cmor_variables.c
- cmor_axes.o: Src/cmor_axes.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cmor_axes.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cmor_axes.c
- cmor_tables.o: Src/cmor_tables.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cmor_tables.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cmor_tables.c
- cmor_grids.o: Src/cmor_grids.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cmor_grids.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cmor_grids.c
- cmor_md5.o: Src/cmor_md5.c include/cmor.h include/cmor_func_def.h include/cmor_md5.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cmor_md5.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cmor_md5.c
- cmor_cfortran_interface.o: Src/cmor_cfortran_interface.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cmor_cfortran_interface.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cmor_cfortran_interface.c
- cdTimeConv.o: Src/cdTime/cdTimeConv.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cdTime/cdTimeConv.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cdTime/cdTimeConv.c
- cdUtil.o: Src/cdTime/cdUtil.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cdTime/cdUtil.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cdTime/cdUtil.c
- timeConv.o: Src/cdTime/timeConv.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cdTime/timeConv.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cdTime/timeConv.c
- timeArith.o:Src/cdTime/timeArith.c include/cmor.h include/cmor_func_def.h
--	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS} Src/cdTime/timeArith.c
-+	${CC} -c ${DEBUG} ${MACROS} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDLDFLAGS} ${ZFLAGS} Src/cdTime/timeArith.c
- cmor_fortran_interface.o: Src/cmor_fortran_interface.f90
- 	${FC} -c ${FCFLAGS} ${USERFFLAGS} ${DEBUG} ${MACROS} Src/cmor_fortran_interface.f90
- cmor:  $(LIBFILES) @MAKEDEPPYTHON@
- 	@ar crv $(LIBNAME) $(LIBFILES) 
- 	@ranlib $(LIBNAME)
-+
- clean:
- 	@echo "Cleaning [$(WHEREAMI)] ..."
- 	@rm -rf $(TMPFILES)
diff --git a/debian/patches/silence-warning.patch b/debian/patches/silence-warning.patch
deleted file mode 100644
index fb7e8a9..0000000
--- a/debian/patches/silence-warning.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: cmor-2.9.1/Lib/__init__.py
-===================================================================
---- cmor-2.9.1.orig/Lib/__init__.py
-+++ cmor-2.9.1/Lib/__init__.py
-@@ -3,7 +3,11 @@ from cmor_const import *
- from pywrapper import axis,variable,write,setup,load_table,dataset,set_table,zfactor,close,grid,set_grid_mapping,time_varying_grid_coordinate,set_cur_dataset_attribute,get_cur_dataset_attribute,has_cur_dataset_attribute,create_output_path,set_variable_attribute,get_variable_attribute,has_variable_attribute
- 
- try:
--  from check_CMOR_compliant import checkCMOR
-+   from check_CMOR_compliant import checkCMOR
-+except ImportError as e:
-+   if e == 'No module named cdms2':
-+      print("Warning: cdms2 module not found")
-+      pass
- except Exception,err:
-   print err
-   pass
diff --git a/debian/python-cmor.install b/debian/python-cmor.install
deleted file mode 100644
index dbdb301..0000000
--- a/debian/python-cmor.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/python2*
diff --git a/debian/python3-cmor.install b/debian/python3-cmor.install
deleted file mode 100644
index fef6392..0000000
--- a/debian/python3-cmor.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/python3*
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index df8ba6f..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/make -f
-
-# Uncomment this to turn on verbose mode.
-# export DH_VERBOSE=1
-
-DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
-LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)
-
-#DEB_BUILD_MAINT_OPTIONS:= hardening=+all
-DEB_CFLAGS_MAINT_APPEND:= -Wall 
-export DEB_BUILD_MAINT_OPTIONS
-#export DEB_CFLAGS_MAINT_APPEND
-
-BUILD_ARCH_OS :-= $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
-BUILD_ARCH_CPU := $(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU)
-
-PYVERS:=$(shell pyversions --supported)
-DESTDIR:=$(shell pwd)/debian/tmp
-
-export CFLAGS:=-I/usr/include/ossp  -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security  $(CFLAGS)
-
-%:
-	dh $@ --with python2
-
-override_dh_auto_configure:
-	autoreconf -fiv
-	ln -sf  /usr/share/misc/config.sub 
-	dh_auto_configure -- --disable-color --enable-verbose-test  --with-uuid --without-python \
-		UUIDLDFLAGS="-lossp-uuid" UUIDFLAGS="-I/usr/include/ossp" SZLIBFLAGS=nosz \
-		CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
-
-override_dh_auto_clean:
-	rm -rf config.sub config.log config.status libcmor.a libcmor.so.2 build test_grid configure CMIP5
-	rm -f ipcc_test_code Makefile setup.py *.mod compile_line.txt include/cmor_locale.h cmor.pc
-	find . -name '*.nc' -delete
-	find . -name '*.o' -delete
-	find .  -name '*.pic_o' -delete
-	find . -name '*.pyc' -delete
-
-override_dh_auto_build:
-	$(MAKE) FC=gfortran
-
-override_dh_auto_test:
-ifeq ( $(BUILD_ARCH_OS)-$(BUILD_ARCH_CPU), kfreebsd-i386)
-	@echo "Tests disabled; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598745"
-else
-	dh_auto_test
-endif
-
-
-# Disabled. Run in piuparts, etc. instead
-#	for p in $(PYVERS)  ; do \
-		$(MAKE) test_python PYTHONEXEC=$$p DESTDIR=$(DESTDIR)  ; done
-	
-
-override_dh_auto_install:
-	$(MAKE) install DESTDIR=$(DESTDIR)
-	$(MAKE) install_shlib DESTDIR=$(DESTDIR)
-	for p in $(PYVERS)  ; do \
-		$$p ./setup.py install  --prefix=$(DESTDIR)/usr --install-layout=deb ; \
-		done
-	dh_install -p libcmor2 libcmor.so.2    $(LIBDIR)
-	dh_install -p libcmor-dev libcmor.a $(LIBDIR)
-	dh_install -p libcmor-dev cmor.pc  $(LIBDIR)/pkgconfig
-	dh_link -p libcmor-dev $(LIBDIR)/libcmor.so.2   $(LIBDIR)/libcmor.so
-	dh_numpy
-	dh_numpy3
diff --git a/debian/source/format b/debian/source/format
deleted file mode 100644
index 163aaf8..0000000
--- a/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/debian/source/options b/debian/source/options
deleted file mode 100644
index b7bc1f2..0000000
--- a/debian/source/options
+++ /dev/null
@@ -1 +0,0 @@
-compression = "xz"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cmor.git



More information about the debian-science-commits mailing list