[magics] 04/31: 2.18.5 upstream

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jun 12 11:09:46 UTC 2015


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

mckinstry pushed a commit to branch master
in repository magics.

commit 5fd0427f752b7111117289aba73977ed5ff0de7e
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Wed May 22 06:12:41 2013 +0100

    2.18.5 upstream
---
 COPYING                                            |   2 +-
 ChangeLog                                          | 630 +++++++++++++++++++++
 LICENSE                                            |   2 +-
 Makefile.in                                        |   2 +
 README                                             |  37 +-
 apps/MagMLInterpretor/Makefile.in                  |   2 +
 apps/Makefile.in                                   |   2 +
 apps/metgram/10_days_epsgram.xml                   |  86 ++-
 apps/metgram/10_days_wave_epsgram.xml              |  89 +--
 apps/metgram/15_days_epsgram.xml                   | 109 ++--
 apps/metgram/Makefile.in                           |   2 +
 configure                                          |  95 +++-
 configure.ac                                       |   7 +-
 debian/README-testfailures.txt                     |  64 ---
 debian/changelog                                   | 247 --------
 debian/compat                                      |   1 -
 debian/control                                     |  87 ---
 debian/copyright                                   |  48 --
 debian/libmagics++-data.install                    |   1 -
 debian/libmagics++-dev.install                     |  10 -
 debian/libmagplus3.install                         |   1 -
 debian/magics++.install                            |   3 -
 debian/patches/cve-2010-3393.patch                 |  31 -
 debian/patches/dynamic_link.patch                  |  21 -
 debian/patches/enable_static.patch                 |  18 -
 debian/patches/gcc-4.7.patch                       | 144 -----
 debian/patches/magics-config.patch                 | 131 -----
 debian/patches/series                              |   6 -
 debian/patches/terralib.patch                      | 141 -----
 debian/rules                                       |  88 ---
 debian/source/format                               |   1 -
 debian/source/options                              |   1 -
 python/Magics/Magics_interface.cc                  |   3 +
 python/Magics/Makefile.in                          |   2 +
 python/Magics/macro.py                             |  98 ++--
 python/Magics/setup.py.in                          |   1 +
 rpms/Makefile.in                                   |   2 +
 src/MagicsSingle.cc                                |  15 +-
 src/Makefile.in                                    |   2 +
 src/MvObs/Makefile.in                              |   2 +
 src/basic/BasicGraphicsObject.cc                   |   9 +-
 src/basic/BasicGraphicsObject.h                    |   3 +
 src/basic/FortranMagics.cc                         |  36 ++
 src/basic/FortranMagics.h                          |   1 +
 src/basic/Layer.cc                                 |   9 +-
 src/basic/Layer.h                                  |   2 +
 src/basic/LegendVisitor.cc                         |  36 +-
 src/basic/LegendVisitor.h                          |   3 +-
 src/basic/LegendVisitorAttributes.h                |   2 +-
 src/basic/MagnifierVisitorAttributes.h             |   2 +-
 src/basic/Makefile.in                              |   2 +
 src/basic/MultiVisdef.cc                           |  14 +
 src/basic/MultiVisdef.h                            |   1 +
 src/basic/TagHandler.cc                            |  15 +
 src/basic/TagHandler.h                             |   1 +
 src/basic/WrepRootNodeAttributes.h                 |   2 +-
 src/basic/XmlBasicNodeAttributes.h                 |   2 +-
 src/basic/XmlRootNodeAttributes.h                  |   2 +-
 src/basic/XmlSceneNodeAttributes.h                 |   2 +-
 src/basic/XmlViewNodeAttributes.h                  |   2 +-
 src/common/CartesianTransformation.h               |   1 +
 src/common/ColourTableDefinitionCompute.cc         |  41 +-
 src/common/Coordinate.h                            |   5 +-
 src/common/FortranRootSceneNodeAttributes.h        |   2 +-
 src/common/FortranSceneNodeAttributes.h            |   2 +-
 src/common/FortranViewNodeAttributes.h             |   2 +-
 src/common/GeoRectangularProjectionAttributes.h    |   2 +-
 src/common/Layout.cc                               |  14 +-
 src/common/Layout.h                                |   5 +-
 src/common/LogoPlottingAttributes.h                |   2 +-
 src/common/MagicsCalls.cc                          |  20 +-
 src/common/MagicsFormat.cc                         |   2 +-
 src/common/Makefile.in                             |   2 +
 src/common/MatrixHandler.h                         |  16 +-
 src/common/OutputHandlerAttributes.h               |   2 +-
 src/common/PageIDAttributes.h                      |   2 +-
 src/common/UserLogoPlottingAttributes.h            |   2 +-
 src/common/magics_api.h                            |   1 +
 src/decoders/BinningObjectAttributes.h             |   2 +-
 src/decoders/DateGribLoopStepAttributes.h          |   2 +-
 src/decoders/EpsXmlInput.cc                        |  10 +-
 src/decoders/EpsgramDecoder.cc                     |  16 +-
 src/decoders/GeoPointsDecoderAttributes.h          |   2 +-
 src/decoders/GribDecoderAttributes.h               |   2 +-
 src/decoders/GribLoopAttributes.h                  |   2 +-
 src/decoders/GribRegularInterpretor.cc             |  15 +-
 src/decoders/ImportActionAttributes.h              |   2 +-
 src/decoders/InputData.cc                          |  33 +-
 src/decoders/InputMatrixInterpretor.cc             |  15 +-
 src/decoders/InputMatrixInterpretor.h              |   2 +
 src/decoders/Makefile.in                           |   2 +
 src/decoders/Netcdf.cc                             |  25 +-
 src/decoders/Netcdf.h                              |  11 +-
 src/decoders/NetcdfDecoderAttributes.h             |   2 +-
 src/decoders/NetcdfGeoMatrixInterpretor.cc         |   8 +-
 .../NetcdfGeoMatrixInterpretorAttributes.h         |   2 +-
 .../NetcdfGeoPolarMatrixInterpretorAttributes.h    |   2 +-
 .../NetcdfGeoVectorInterpretorAttributes.h         |   2 +-
 .../NetcdfGeopointsInterpretorAttributes.h         |   2 +-
 src/decoders/NetcdfInterpretorAttributes.h         |   2 +-
 src/decoders/NetcdfMatrixInterpretor.cc            |  61 +-
 src/decoders/NetcdfMatrixInterpretor.h             |   7 +-
 src/decoders/NetcdfMatrixInterpretorAttributes.h   |   2 +-
 src/decoders/NetcdfVectorInterpretorAttributes.h   |   2 +-
 src/decoders/ObsDecoderAttributes.h                |   2 +-
 src/decoders/ObsStatDecoderAttributes.h            |   2 +-
 src/drivers/BaseDriverSymbols.h                    |   6 +-
 src/drivers/Makefile.in                            |   2 +
 src/drivers/PostScriptDriver.cc                    |   9 +-
 src/drivers/QtDriver.cc                            | 215 +++----
 src/libMagWrapper/Makefile.in                      |   2 +
 src/libTable/Makefile.in                           |   2 +
 src/magics_config.h                                |  14 +-
 src/magics_ecmwf_log.h                             |   2 +-
 src/oda/Makefile.in                                |   2 +
 src/oda/OdaDecoder.cc                              |   4 +-
 src/terralib/Makefile.in                           |   2 +
 src/visualisers/Akima474MethodAttributes.h         |   2 +-
 src/visualisers/Akima760.cc                        |  18 +-
 src/visualisers/Akima760MethodAttributes.h         |   2 +-
 src/visualisers/AxisAttributes.cc                  |   2 +-
 src/visualisers/AxisAttributes.h                   |   2 +-
 src/visualisers/AxisMethod.cc                      |  55 +-
 src/visualisers/AxisMethodAttributes.cc            |   2 +-
 src/visualisers/Bar.cc                             |  22 +-
 src/visualisers/BothValuePlotMethodAttributes.cc   |   2 +-
 src/visualisers/BoundariesAttributes.h             |   2 +-
 src/visualisers/BoxPlotBoxAttributes.cc            |   2 +-
 src/visualisers/BoxPlotBoxBorderAttributes.cc      |   2 +-
 src/visualisers/BoxPlotMedianAttributes.cc         |   2 +-
 src/visualisers/BoxPlotVisualiserAttributes.cc     |   2 +-
 src/visualisers/BoxPlotWhiskerBorderAttributes.cc  |   2 +-
 src/visualisers/BoxPlotWhiskerBoxAttributes.cc     |   2 +-
 src/visualisers/BoxPlotWhiskerLineAttributes.cc    |   2 +-
 .../CalculateColourTechniqueAttributes.h           |   2 +-
 src/visualisers/CdfGraphAttributes.cc              |   2 +-
 src/visualisers/CellShadingAttributes.h            |   2 +-
 src/visualisers/CoastPlottingAttributes.h          |   2 +-
 src/visualisers/CoastlinesAttributes.h             |   2 +-
 src/visualisers/ColourTechnique.cc                 |  15 +-
 src/visualisers/ContinuousLegendMethodAttributes.h |   2 +-
 src/visualisers/ContourAttributes.cc               |   2 +-
 src/visualisers/ContourAttributes.h                |   2 +-
 src/visualisers/CountSelectionTypeAttributes.h     |   2 +-
 src/visualisers/DateAxis.cc                        |  37 +-
 src/visualisers/DotPolyShadingMethodAttributes.h   |   2 +-
 src/visualisers/EfiGraphAttributes.cc              |   2 +-
 src/visualisers/EpsCloudAttributes.cc              |   2 +-
 src/visualisers/EpsGraphAttributes.cc              |   2 +-
 src/visualisers/EpsPlumeAttributes.cc              |   2 +-
 src/visualisers/EpsShadeAttributes.cc              |   2 +-
 src/visualisers/EpsWindAttributes.cc               |   2 +-
 src/visualisers/FixedTableModeAttributes.h         |   2 +-
 src/visualisers/GraphShade.cc                      |   2 -
 src/visualisers/GraphShadeStyle.cc                 |  39 +-
 src/visualisers/GridPlottingAttributes.h           |   2 +-
 src/visualisers/GridShadingAttributes.h            |   2 +-
 src/visualisers/HatchPolyShadingMethodAttributes.h |   2 +-
 src/visualisers/HiLoAttributes.cc                  |   2 +-
 src/visualisers/HiLoAttributes.h                   |   2 +-
 src/visualisers/HiLoMarkerAttributes.h             |   2 +-
 src/visualisers/HiLoNumberAttributes.h             |   2 +-
 src/visualisers/HiLoTechniqueAttributes.h          |   2 +-
 src/visualisers/HiLoTextAttributes.h               |   2 +-
 src/visualisers/HistogramAttributes.cc             |   2 +-
 src/visualisers/HistogramLegendMethodAttributes.h  |   2 +-
 src/visualisers/ImagePlottingAttributes.h          |   2 +-
 src/visualisers/ImportPlotAttributes.h             |   2 +-
 src/visualisers/IntervalSelectionType.cc           |  21 +-
 src/visualisers/IntervalSelectionTypeAttributes.h  |   2 +-
 src/visualisers/IsoHighlightAttributes.h           |   2 +-
 src/visualisers/IsoLabelAttributes.h               |   2 +-
 src/visualisers/IsoPlot.cc                         |  18 +-
 src/visualisers/IsoPlotAttributes.cc               |   2 +-
 src/visualisers/IsoPlotAttributes.h                |   2 +-
 src/visualisers/IsoShading.h                       |  10 +-
 src/visualisers/IsoShadingAttributes.cc            |   2 +-
 src/visualisers/IsoShadingAttributes.h             |   2 +-
 src/visualisers/LabelPlottingAttributes.h          |   2 +-
 src/visualisers/LegendBoxAttributes.h              |   2 +-
 src/visualisers/LevelListSelectionTypeAttributes.h |   2 +-
 src/visualisers/LevelSelectionAttributes.h         |   2 +-
 src/visualisers/ListColourTechniqueAttributes.h    |   2 +-
 src/visualisers/LookupTableModeAttributes.h        |   2 +-
 src/visualisers/Makefile.in                        |   2 +
 src/visualisers/MarkerShadingTechniqueAttributes.h |   2 +-
 src/visualisers/MetgramCurveAttributes.cc          |   2 +-
 src/visualisers/MetgramFlagsAttributes.cc          |   2 +-
 src/visualisers/MetgramGraphAttributes.cc          |   2 +-
 src/visualisers/NoGridPlottingAttributes.h         |   2 +-
 src/visualisers/ObsItemFamily.cc                   |   6 +-
 src/visualisers/ObsPlotting.cc                     |   7 +-
 src/visualisers/ObsPlottingAttributes.h            |   2 +-
 src/visualisers/PolyShadingMethod.cc               |  38 +-
 src/visualisers/PolyShadingTechnique.cc            |   6 +-
 src/visualisers/PolyShadingTechniqueAttributes.cc  |   2 +-
 src/visualisers/PolyShadingTechniqueAttributes.h   |   2 +-
 src/visualisers/SampleContourMethodAttributes.h    |   2 +-
 src/visualisers/SegmentJoiner.cc                   |   5 +-
 src/visualisers/SymbolIndividualModeAttributes.h   |   2 +-
 src/visualisers/SymbolTableModeAttributes.h        |   2 +-
 src/visualisers/WindPlotting.cc                    |   3 +-
 src/web/Makefile.in                                |   2 +
 src/web/ObsJSon.cc                                 |  14 +-
 src/web/ObsJSon.h                                  |   6 +-
 src/web/ObsJSonAttributes.cc                       |   2 +-
 src/web/WrepJSonAttributes.cc                      |   2 +-
 src/xml/Makefile.in                                |   2 +
 src/xml/graph_params.xml                           |  14 +-
 test/C/Makefile.in                                 |   2 +
 test/MagML/Makefile.in                             |   2 +
 test/Makefile.in                                   |   2 +
 test/fortran/Makefile.in                           |   2 +
 test/python/Makefile.in                            |   2 +
 tools/Makefile.in                                  |   2 +
 version.sh                                         |   6 +-
 216 files changed, 1768 insertions(+), 1732 deletions(-)

diff --git a/COPYING b/COPYING
index f4ed7ed..457b4a0 100644
--- a/COPYING
+++ b/COPYING
@@ -186,7 +186,7 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-   Copyright 2007-2012 European Centre for Medium-Range Weather Forecasts (ECMWF)
+   Copyright 2007-2013 European Centre for Medium-Range Weather Forecasts (ECMWF)
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
diff --git a/ChangeLog b/ChangeLog
index e9bed51..3f309f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,635 @@
 Changes in Magics++ (for developers - users should read 'NEWS')
 ===============================================================
+
+Change 83492 on 2013/03/02 by cgs at cgs
+
+	Add CSV decoder in the python interface
+
+Change 83485 on 2013/03/01 by cgs at cgs
+
+	Graph - Big fix in Wind Plotting 
+
+Change 83460 on 2013/03/01 by cgs at cgs
+
+	Tutorial - scaling netcdf + minput in geographical [integrate]
+
+Change 83148 on 2013/02/20 by cgs at cgs
+
+	CurevArea - Fix issues with clipping [MAGP-152][integrate]
+
+Change 83110 on 2013/02/19 by cgs at cgs
+
+	Legend - In metview the legend for advanced wind plotting was not reset between frame [ MAGP-204] [integrate]
+
+Change 83097 on 2013/02/19 by cgs at cgs
+
+	Histogram - Fix setting of colours [METV-326][integrate]
+
+Change 83071 on 2013/02/18 by cgi at cgi_metview_4
+
+	NetCDF matrix - fixed issue where automatic date Y axis was not plotting any data [METV-330]
+
+Change 83067 on 2013/02/18 by cgm at magics_opensuse113
+
+	VERSION - 2.18.13
+
+Change 82951 on 2013/02/14 by cgs at cgs
+
+	Axis - Precsion issue when computing ticks [MAGP-354][integrate]
+
+Change 82936 on 2013/02/14 by cgs at cgs
+
+	Bar - implements graph_shade_dot_density  and graph_shade_dot_size [MAGP-355][integrate]
+
+Change 82924 on 2013/02/14 by cgm at magics_opensuse113
+
+	VERSION 2.18.12
+
+Change 82766 on 2013/02/12 by cgs at cgs
+
+	Netcdf - fix problem in the setting date axis [METV-330][integrate]
+
+Change 82645 on 2013/02/11 by cgm at magics_opensuse113
+
+	VERSION back to 2.18.11 for an other fix
+
+Change 82642 on 2013/02/11 by cgs at cgs
+
+	Contour - test on array size [integrate]
+
+Change 82621 on 2013/02/10 by cgm at magics_opensuse113
+
+	VERSION 2.18.12
+
+Change 82525 on 2013/02/07 by cgs at cgs
+
+	Backward compatiblity - map_coastline_resolution was not pass to Magics [integrate]
+
+Change 82474 on 2013/02/06 by cgs at cgs
+
+	Obs - ignore missing data - clip observations [MAGP-243][integrate]
+
+Change 82317 on 2013/01/31 by cgs at cgs
+
+	Epsgram - fix automatic title in EpsXml ( used in MACC project) [MAGP-349][integrate]
+
+Change 82286 on 2013/01/29 by cgm at magics_opensuse113
+
+	VERSION 2.18.11
+
+Change 82271 on 2013/01/29 by cgs at cgs
+
+	Graph- increase default values for suppress_above and below parameters [MAGP-346][integrate]
+
+Change 82262 on 2013/01/29 by cgs at cgs
+
+	Legend - adjust layout for wind legend [MAGP-347][integrate]
+
+Change 82209 on 2013/01/28 by cgs at cgs
+
+	Contouring - small fix in the area computation [MAGP-342][integrate]
+
+Change 82203 on 2013/01/26 by cgm at magicsIBM
+
+	COMPILE add options for aix
+
+Change 82160 on 2013/01/24 by cgm at magics_opensuse113
+
+	VERSION 2.18.10
+
+Change 82081 on 2013/01/22 by cgs at cgs
+
+	epsgram - update templates [MAGP-340]
+
+Change 82072 on 2013/01/22 by cgs at cgs
+
+	epsgram - fix problem in eps template [MAGP-340]
+
+Change 82010 on 2013/01/21 by cgs at cgs
+
+	fix bug in intergrate
+
+Change 81958 on 2013/01/17 by cgs at cgs
+
+	Contouring - improve shading of falt fields [MAGP-306][integrate]
+
+Change 81939 on 2013/01/17 by cgs at cgs
+
+	Contouring - Small fix in IntervalSelection [MAGP-336]
+	CartesianProjection - Fix bug in setting logarithmic axis [MAGP-332]
+
+Change 81907 on 2013/01/16 by cgs at cgs
+
+	Contouring - Fix unwanted isolines [MAGP-334][integrate]
+
+Change 81877 on 2013/01/15 by cgs at cgs
+
+	Netcdf - Fix in date setting [MAGP-333][integrate]
+
+Change 81866 on 2013/01/14 by cgs at cgs
+
+	Date Axis - reverse date implemented [MAGP-312][integrate]
+
+Change 81864 on 2013/01/14 by cgs at cgs
+
+	Axis - fix bug in months axis [MAGP-325][integrate]
+
+Change 81862 on 2013/01/14 by cgs at cgs
+
+	Contouring : adjsutemnt of the IntervalList method [MAGP-317][integrate]
+
+Change 81858 on 2013/01/14 by cgs at cgs
+
+	GridShading- Fix bug in CartesianView [MAGP-314][integrate]
+
+Change 81854 on 2013/01/14 by cgs at cgs
+
+	Grib - ScanningMode was ignored foar regulargaussian [MAGP-311] [integrate]
+
+Change 81848 on 2013/01/14 by cgs at cgs
+
+	Netcdf - Fix pb in XYMatrix using date [MAGP-331][integrate]
+
+Change 81846 on 2013/01/14 by cgs at cgs
+
+	Netcdf : wrong matrix intilalisation when using a sub-area [MAGP-308][integrate]
+
+Change 81838 on 2013/01/14 by cgm at magics_opensuse113
+
+	DRIVERS - remove 'cout'
+
+Change 81836 on 2013/01/11 by cgs at cgs
+
+	Metview-Printing : fix bug when using multiple drivers [integrate]
+
+Change 81808 on 2013/01/10 by cgs at cgs
+
+	Legend - missing legend in metview [MAGP-329][integrate]
+
+Change 81805 on 2013/01/10 by cgs at cgs
+
+	Shading - Fix random shading in Metview [MAGP-328][integrate]
+
+Change 81792 on 2013/01/10 by cgr at cgr
+
+	Qt driver: When font settings are used - text layout breaks MAGP-326
+
+Change 81709 on 2013/01/07 by cgs at cgs
+
+	NetcdfDecoder - fix pb in getting the value for mssing data. [MAGP-319][integrate]
+
+Change 81597 on 2012/12/28 by cgm at magicsIBM
+
+	COMPILE AIX disable shared library build (which caused 'magmlx' to fail)
+
+Change 81534 on 2012/12/20 by cgi at cgi_metview_4
+
+	Axis: reduced the maximum number of geo axis labels from 20 to 10 in order to avoid overlapping [MAGP-315]
+
+Change 81528 on 2012/12/20 by cgm at magics_opensuse113
+
+	DRIVERS - Correct possitioning of text around symbols [MAGP-177]
+
+Change 81524 on 2012/12/19 by cgm at magics_opensuse113
+
+	DRIVERS - PS support rotated text if it contains special characters [MAGP-304]
+
+Change 81523 on 2012/12/19 by cgm at magics_opensuse113
+
+	VERSION - 2.18.9
+
+Change 81516 on 2012/12/19 by cgi at cgi_metview_4
+
+	NetCDF: fixed issue where some netCDF matrices were throwing an exception because of problems with floating-point precision. It's worth keeping an eye on this though.   [MAGP-313]
+
+Change 80682 on 2012/12/12 by cgs at cgs
+
+	Fix small bug in format.[integrate]
+
+Change 80647 on 2012/12/12 by cgm at magics_opensuse113
+
+	LICENSE - remove unneccessary files which were highlighted in Palamida scan (MAGP-305)
+
+Change 80577 on 2012/12/07 by cgm at magics_opensuse113
+
+	VERSION - 2.18.8
+
+Change 80545 on 2012/12/06 by cgs at cgs
+
+	Contour - Small fix in GridShading [integrate]
+
+Change 80536 on 2012/12/06 by cgs at cgs
+
+	take print out
+
+Change 80531 on 2012/12/06 by cgs at cgs
+
+	Legend - Fix issues with users defined text entries [MAGP-296][integrate]
+
+Change 80519 on 2012/12/06 by cgs at cgs
+
+	Netcdf- Handle transposed matrix definition + mssing value [MAGP-295] [MAGP-294][integrate]
+
+Change 80515 on 2012/12/06 by cgm at magics_opensuse113
+
+	USE SCRIPTS - 2.18.6
+
+Change 80491 on 2012/12/05 by cgs at cgs
+
+	Shading - smal fix in shading 
+
+Change 80487 on 2012/12/05 by cgm at magics_opensuse113
+
+	USE SCRIPTS - correct link to old++
+
+Change 80480 on 2012/12/05 by cgm at magics_opensuse113
+
+	PYTHON - test on setting rpaths
+
+Change 80479 on 2012/12/05 by cgm at magics_opensuse113
+
+	USE SCRIPTS - for release of 2.18.6 as default user version
+
+Change 80466 on 2012/12/05 by cgm at magics_opensuse113
+
+	USE SCRIPTS - set 'new++' to 2.18.5 - use odb 0.9.21
+
+Change 80465 on 2012/12/05 by cgm at magics_opensuse113
+
+	USE SCRIPTS - set old++ too 2.14.11
+
+Change 80464 on 2012/12/05 by cgm at magics_opensuse113
+
+	VERSION 2.18.7
+
+Change 80463 on 2012/12/05 by cgs at cgs
+
+	improve test in regression suite
+
+Change 80457 on 2012/12/04 by cgm at magics_opensuse113
+
+	VERSION 2.18.6
+
+Change 80447 on 2012/12/04 by cgs at cgs
+
+	Oda - Improved error message 
+
+Change 80446 on 2012/12/04 by cgs at cgs
+
+	Odb - improve error checking [integrate]
+
+Change 80435 on 2012/12/04 by cgm at magics_opensuse113
+
+	ODB - move to version 0.9.21 (version used by RD)
+
+Change 80427 on 2012/12/04 by cgm at magics_opensuse113
+
+	VERSION 2.18.5
+
+Change 80424 on 2012/12/04 by cgs at cgs
+
+	Obstat - Fix Regression issues - Tick positionning + inputMatrix and grid shading [MAGP-292][integrate]
+
+Change 80422 on 2012/12/04 by cgs at cgs
+
+	Improved symbol plotting
+
+Change 80405 on 2012/12/03 by cgs at cgs
+
+	Print - small print removed
+
+Change 80402 on 2012/12/03 by cgs at cgs
+
+	Legend - Fix histogram legend [MAGP-293][integrate]
+
+Change 80376 on 2012/12/03 by cgm at magics_opensuse113
+
+	ODB - move to ODB_API 0.9.24
+
+Change 80375 on 2012/12/03 by cgs at cgs
+
+	Obstat - Fix Regression issues - Tick positionning + inputMatrix and grid shading [MAGP-292] [integrate]
+
+Change 80361 on 2012/12/02 by cgm at magics_opensuse113
+
+	USE SCRIPTS - changes for 2.18.2 release (mostly AIX)
+
+Change 80338 on 2012/11/29 by cgs at cgs
+
+	Wind- Prevent wind crashing when bno wind to plot[MAGP-291][integrate]
+
+Change 80319 on 2012/11/29 by cgm at magics_opensuse113
+
+	      VERSION 2.18.4	
+
+Change 80285 on 2012/11/28 by cgs at cgs
+
+	Text - use of < was cousingan abort when using the static library [MAGP-290]
+
+Change 80163 on 2012/11/22 by cgm at cgm_meshon
+
+	COMPILE remove scin option
+
+Change 80099 on 2012/11/20 by cgm at magics_opensuse113
+
+	DRIVERS - CAIRO correct positioning in complex layouts (MAGP-244)
+
+Change 80071 on 2012/11/20 by cgs at cgs
+
+	Cartesian Projection - small fix in logarithmic axis [MAGP-276] [integrate]
+
+Change 80058 on 2012/11/19 by cgm at magics_opensuse113
+
+	DRIVERS - KMZ fix missing files fatal error MAGP-43
+
+Change 80049 on 2012/11/19 by cgm at magics_opensuse113
+
+	VERSION - 2.18.3
+
+Change 80039 on 2012/11/19 by cgm at magics_opensuse113
+
+	COMPILATION - remove scin call
+
+Change 79835 on 2012/11/15 by cgs at cgs
+
+	Symbol - Allow blanking of text [MAGP-286][integrate]
+
+Change 79815 on 2012/11/15 by cgs at cgs
+
+	Symbol - Allow resize of image when image are used as symbol  [MAGP-283][integrate]
+
+Change 79785 on 2012/11/14 by cgs at cgs
+
+	Contour - Small fix in contour [MAGP-280][integrate]
+
+Change 79784 on 2012/11/14 by cgs at cgs
+
+	Contour - small fix in contouring [MAGP_280] [integrate]
+
+Change 79734 on 2012/11/12 by cgs at cgs
+
+	Symbol - Add a new option "both" to symbol type to allow the value to be plotted next to the symbol. [MAGP-273]
+
+Change 79626 on 2012/11/07 by cgm at cgm_meshon
+
+	PYTHON - move interface into separate sub directory to enable tests to run from this local build (MAGP-275)
+
+Change 79625 on 2012/11/07 by cgm at cgm_meshon
+
+	TESTS - ensure environment variables are set correctly, so that the local build is used for tests and not a central installation (MAGP-275)
+
+Change 79582 on 2012/11/07 by cgm at magics_opensuse113
+
+	DRIVERS Cairo - remove CairoDriverRaster which was anyway not used but caused compiler warnings
+
+Change 79580 on 2012/11/06 by cgm at magics_opensuse113
+
+	DRIVERS Cairo - enable that antialias can be switched off  MAGP-274
+
+Change 79579 on 2012/11/06 by cgm at magics_opensuse113
+
+	TOOLS - correct spelling of MeteoroMagLogical (refactoring gone bad?)
+
+Change 79410 on 2012/10/31 by cgs at cgs
+
+	TableDecoder - Fix crash in binning [MAGP-250][integrate]
+
+Change 79257 on 2012/10/29 by cgs at cgs
+
+	Obs - Fix incompatibility between bufr and Json  [integrate]
+
+Change 79243 on 2012/10/29 by cgm at magics_opensuse113
+
+	VERSION 2.18.2 - maintenance
+
+Change 79191 on 2012/10/25 by cgm at magics_opensuse113
+
+	PYTHON - avoid empty lib names / paths and include files in tarball if python is disabled 
+
+Change 79190 on 2012/10/25 by cgm at magics_opensuse113
+
+	VERSION - back to 2.18.1 (needs more changes for tarball)
+
+Change 79189 on 2012/10/25 by cgm at magics_opensuse113
+
+	PYTHON - remove old interface
+
+Change 79187 on 2012/10/25 by cgm at magics_opensuse113
+
+	MAKE - add missing file to build tarball
+
+Change 79145 on 2012/10/25 by cgm at magics_opensuse113
+
+	VERSION 2.18.2 - maintenance
+
+Change 79013 on 2012/10/22 by cgm at magics_opensuse113
+
+	PYTHON - changes for ECMWF libraries
+
+Change 79012 on 2012/10/21 by cgm at cgm_meshon
+
+	PYTHON - update for outside-ECMWF installations
+
+Change 78992 on 2012/10/19 by cgm at magics_opensuse113
+
+	BOOST - comment out version test which is not necessary
+
+Change 78988 on 2012/10/19 by cgm at magics_opensuse113
+
+	MAKE- remove linker flag to be able to compile & link on MAC OS X
+
+Change 78979 on 2012/10/19 by cgm at magics_opensuse113
+
+	MAKE - enable build of tarball if python is disabled
+
+Change 78974 on 2012/10/19 by cgm at magics_opensuse113
+
+	MAKE - add missing file for tarball
+
+Change 78932 on 2012/10/18 by cgr at cgr
+
+	ODB: ODB plotting fails if duplicated columns present in the input ODB MAGP-246
+
+Change 78905 on 2012/10/17 by cgm at magics_opensuse113
+
+	VERSION 2.18.1
+
+Change 78892 on 2012/10/17 by cgs at cgs
+
+	Fix linking issue after integration
+
+Change 78871 on 2012/10/17 by cgs at cgs
+
+	Observations - enable use of users template to customise observation plotting [MAGP-243] [integrate]
+	Add Regression test suite
+
+Change 78868 on 2012/10/17 by cgi at cgi_metview_4
+
+	BOOST: updated version to 1.50.0 in r2.18 branch
+
+Change 78853 on 2012/10/17 by cgi at cgi_metview_4
+
+	CONTOUR: in Count level selection mode, set close-enough-to-zero to zero to avoid formatting issues with the legend [MAGP-242] [r2.18 branch]
+
+Change 78729 on 2012/10/12 by cgs at cgs
+
+	MagML - allow import object 
+
+Change 78714 on 2012/10/11 by cgs at cgs
+
+	Symbol - Trajectory in MagML + improve connected symbol and text. [MAGP-238][integrate]
+
+Change 78708 on 2012/10/11 by cgs at cgs
+
+	Proj4 - Add Projection EPSG:3857 + update the regression test suite [MAGP-192]  [integrate]
+
+Change 78682 on 2012/10/11 by cgs at cgs
+
+	SymbolPlotting - Close lats Interval for AdvancedTableMode [MAGP-240][integrate]
+
+Change 78613 on 2012/10/10 by cgm at magics_opensuse113
+
+	PYTHON - set path to Fortran libraries (for Emoslib)
+
+Change 78612 on 2012/10/09 by cgm at cgm_orion
+
+	PYTHON - make FLIB(S) more flexible
+
+Change 78611 on 2012/10/09 by cgm at magics_opensuse113
+
+	PYTHON - updates to setup.py
+
+Change 78602 on 2012/10/09 by cgr at cgr
+
+	API : Add thermodynamic functions MAGP-127
+
+Change 78558 on 2012/10/08 by cgr at cgr
+
+	ODB : Record and make available information about the data points visualised in Metview MAGP-222
+
+Change 78556 on 2012/10/08 by cgs at cgs
+
+	Python - Inoput Matrix conflict of parameters names [MAGP-236][integrate]
+
+Change 78554 on 2012/10/08 by cgr at cgr
+
+	ODB : Record and make available information about the data points visualised in Metview MAGP-222
+
+Change 78553 on 2012/10/08 by cgs at cgs
+
+	Grib - Grid values and metadata in Metview [MAGP-235] [integrate]
+
+Change 78550 on 2012/10/05 by cgm at cgm_orion
+
+	PYTHON - fix for makefile to use new directory
+
+Change 78549 on 2012/10/05 by cgm at magics_opensuse113
+
+	PYTHON - test for new python interface
+
+Change 78527 on 2012/10/05 by cgr at cgr
+
+	Drivers : Improve plotting speed in the QtDdriver  MAGP-233
+
+Change 78519 on 2012/10/05 by cgs at cgs
+
+	Wind - Fix the WrapAround for rooated grids [ MAGP-232][integrate]
+	Input Matrix - Fix the WrapAround for Wind Plotting [ MAGP-231] [integrate]
+
+Change 78489 on 2012/10/04 by cgs at cgs
+
+	InputData - Add input for CurveArea Plotting [Metview][MAG-230][integrate]
+
+Change 78468 on 2012/10/04 by cgr at cgr
+
+	ODB : Record and make available information about the data points visualised in Metview MAGP-222
+
+Change 78466 on 2012/10/04 by cgs at cgs
+
+	Wind plotting - fix the last blue arrow [MAGP-225][integrate]
+
+Change 78464 on 2012/10/04 by cgs at cgs
+
+	Cleaning
+
+Change 78463 on 2012/10/04 by cgs at cgs
+
+	cleaning
+
+Change 78460 on 2012/10/04 by cgs at cgs
+
+	Contour - Improve shading of non global fields [MAGP-227] [integrate]
+	Contour - Fix issue for shading of flat fields [MAGP-229] [integrate]
+
+Change 78433 on 2012/10/03 by cgm at magics_opensuse113
+
+	VERSION 2.18.0
+
+Change 78428 on 2012/10/03 by cgs at cgs
+
+	Wind - Improve wind plotting for rotated grids. [MAGP-219] [integrate]
+	Contour - fix grid-shading issue for nonglobal fields [MAGP-227] [integrate]
+
+Change 78427 on 2012/10/03 by cgs at cgs
+
+	Metview - Fix Highlight problem [MAGP-228] [integrate]
+
+Change 78417 on 2012/10/03 by cgm at magics_opensuse113
+
+	VERSION 2.17.2
+
+Change 78408 on 2012/10/03 by cgm at magics_opensuse113
+
+	INTEGRATE - AIX compiler changes from 2.16
+
+Change 78370 on 2012/10/02 by cgs at cgs
+
+	Metview - Allow position_list in axis plotting [integrate]
+
+Change 78305 on 2012/09/28 by cgs at cgs
+
+	contouring - optimisation
+
+Change 78296 on 2012/09/28 by cgs at cgs
+
+	Cleaning - print 
+
+Change 78290 on 2012/09/28 by cgs at cgs
+
+	Regression Suite - Fix issues with grid and cell Shading [MAPG-223] [MAGP-210] [integrate]
+
+Change 78279 on 2012/09/27 by cgm at cgm_meshon
+
+	MAKE - add header file required for GCC 4.7
+
+Change 78257 on 2012/09/27 by cgs at cgs
+
+	contour - fix small bug wiith handling missing data
+
+Change 78256 on 2012/09/27 by cgs at cgs
+
+	Grib - Implements wind plotting for rotated gribs [MAGP-219] [integrate]
+
+Change 78153 on 2012/09/25 by cgs at cgs
+
+	Contour - optimisation and missing data [MAGP-221][integrate]
+
+Change 78150 on 2012/09/25 by cgs at cgs
+
+	Contour - optimisation and missing data [MAGP-221][integrate]
+
+Change 78028 on 2012/09/21 by cgi at cgi_metview_4
+
+	BUILD: removed Qt-OpenGL dependency (also removed Qt-Network dependency from Magics)  [Metview 4.3 branch, Magics r2.18 branch]
+
+Change 77935 on 2012/09/18 by cgs at cgs
+
+	Text - Fix position of text in titlebox [MAGP-220] [integrate from main]
+
+Change 77909 on 2012/09/18 by cgm at magics_opensuse113
+
+	BRANCH - new branch for version 2.18   (for now still called 2.17.x)
+
 Change 69349 on 2012/02/24 by cgs at cgs
 
         Magics: Probkem in setting matrix.
diff --git a/LICENSE b/LICENSE
index f4ed7ed..457b4a0 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-   Copyright 2007-2012 European Centre for Medium-Range Weather Forecasts (ECMWF)
+   Copyright 2007-2013 European Centre for Medium-Range Weather Forecasts (ECMWF)
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
diff --git a/Makefile.in b/Makefile.in
index 60e79fe..734b4cd 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -173,6 +173,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -257,6 +258,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/README b/README
index 08645e0..0b3ce76 100644
--- a/README
+++ b/README
@@ -2,45 +2,20 @@
 Magics++ README
 ===============
 
-1. Changes to MAGICS 6
-2. Getting the source
-3. Installation
-4. License
-
-
-1. Changes to MAGICS 6
-======================
-
-Before you install Magics++ you might want to check the
-list features of MAGICS 6 not implemented (yet):
-
-- support for Lambert projection
-- wind: streamlines and isotachs
-- specification groups
-- pie charts
-
-Changes
--------
-
-- Default coast line colour has change from yellow to black
-
-- Default scaling of PostScript output is now 1.0 instead of 0.95
-   --> set parameter OUTPUT_PS_SCALE to 0.95 if the old scaling is required
-   
-   
-
-2. Getting the source
+1. Getting the source
 =====================
 
-The tarball of the source can be downloaded from Software Services 
-at ECMWF ( http://www.ecmwf.int/products/data/software/magics++.html ).
+The tarball of the source can be downloaded from 
+
+     https://software.ecmwf.int/magics/Releases
 
 
 2. Installation
 ===============
 
 Please read the installation guide:
-http://www.ecmwf.int/publications/manuals/magics/magplus/manuals/pdf/magics_install.pdf
+
+  https://software.ecmwf.int/magics/Installation+Guide
 
 
 3. License
diff --git a/apps/MagMLInterpretor/Makefile.in b/apps/MagMLInterpretor/Makefile.in
index 79e1300..eab5ba7 100644
--- a/apps/MagMLInterpretor/Makefile.in
+++ b/apps/MagMLInterpretor/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/apps/Makefile.in b/apps/Makefile.in
index dd385ec..8559888 100644
--- a/apps/Makefile.in
+++ b/apps/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/apps/metgram/10_days_epsgram.xml b/apps/metgram/10_days_epsgram.xml
index 70a3b21..4362af4 100644
--- a/apps/metgram/10_days_epsgram.xml
+++ b/apps/metgram/10_days_epsgram.xml
@@ -9,24 +9,30 @@
                 <none/>
         </epsgram>
 	
-        <text id="title" font='sansserif' colour='blue' font_size='0.4'
+        <text id="title" font='sansserif' colour='navy' font_size='0.4'
                justification='left' display='absolute'>	
 		</text>
-		<horizontal_axis id="haxis" axis_line="false" line_thickness="4" colour='kelly_green'>
-			<nolabel/>
-			<date/>
-			<noline/>
-            <minortick colour='kelly_green'/>
-			<grid line_style="dot" colour='kelly_green'/>
-            <tick colour='kelly_green'/>
-		</horizontal_axis>
+		<horizontal_axis  axis_grid= "on"
+                    axis_grid_colour= "Rgb(0.5, 0.5, 0.5)"
+                    axis_grid_line_style= "dash"
+                    axis_line_colour= "navy"
+                    axis_minor_tick= "on"
+                    axis_minor_tick_colour= "navy"
+                    axis_tick_colour= "navy"
+                    axis_tick_label= "off" id="haxis"/>
 
-		<vertical_axis id="vaxis" axis_line="false" line_thickness="4" colour='kelly_green'>
-			<noline/>
-            <label colour='kelly_green' quality='sansserif' height='0.3'/>
-			<grid line_style="dot" colour='kelly_green'/>
-            <tick colour='kelly_green'/>
-		</vertical_axis>        
+		<vertical_axis id="vaxis" 
+                    axis_grid="on"
+                    axis_grid_colour= "grey"
+                    axis_grid_line_style= "dash"
+                    axis_grid_reference_level= "0"
+                    axis_grid_reference_thickness= "1"
+                    axis_label_font="sansserif"
+                    axis_line="on"
+                    axis_line_colour="navy"
+                    axis_tick_colour="navy"
+                    axis_tick_label_colour="navy"
+                    axis_tick_label_height= "0.3"/>        
 		<map id='box'  margin_bottom='7%' margin_top='15%' border-colour='Rgb(0.5, 0.5, 0.5)'/>
 	</definition>
 	<drivers>
@@ -49,11 +55,17 @@
 			<y_regular y_min='0' y_max='8'/>
 		</cartesian>  
 
-	<text margin_bottom='80%' use_id='title'/>
-	<horizontal_axis use_id='haxis'/>    
+	<text margin_bottom='85%' use_id='title' > 
+         <font size='0.5'>EPS Meteogram </font><br/>
+         <font size='0.4'><spot_info key='station'/>  <spot_info key='location'/></font><br/>
+         <font size='0.4'>Deterministic Forecast and EPS Distribution <spot_info key='base_date'/> </font>
+         <br/><br/>
+         <font size='0.4'><spot_info key='parameter'/> </font>
+         </text>
+	<horizontal_axis  use_id="haxis"/>   
 	   <vertical_axis  use_id='vaxis'/> 
 	<plot>                
-			<epsgram use_id="station" parameter="cloud-cover" long_title='true'/>
+			<epsgram use_id="station" parameter="cloud-cover" />
 			<epsgraph deterministic='on' whisker='on'> <both/> </epsgraph>
 		</plot>
 	  </map>
@@ -69,7 +81,9 @@
            </cartesian>  
            <horizontal_axis use_id='haxis'/>    
 		   <vertical_axis  use_id='vaxis'/>            
-           <text margin_bottom='84%' use_id='title'/>             
+           <text margin_bottom='90s%' use_id='title' > 
+         <font size='0.4'><spot_info key='parameter'/> </font>
+         </text>           
            <plot>
                 <epsgram use_id="station" y_axis_threshold='3'  parameter="precip"/>
 				<epsgraph deterministic='on' whisker='on'> <both/> </epsgraph>
@@ -86,7 +100,10 @@
            </cartesian>  
            <horizontal_axis use_id='haxis'/>    
 		   <vertical_axis  use_id='vaxis'/> 
-           <text margin_bottom='78%' use_id='title'/>
+           <text margin_bottom='85%' use_id='title' > 
+         <font size='0.4'><spot_info key='parameter'/> </font>
+         </text>
+         
            <plot>
                 <epsgram use_id="station" parameter="10m-wind"/>
 				<epsgraph deterministic='on' whisker='on'> <both/> </epsgraph>
@@ -97,15 +114,16 @@
         
 	   
         <nopageid />
-        line_system_plot='on' line_date_plot='off' line_errors_plot='off' 
-                font='sansserif' line_colour='Rgb(0.8, 0.8, 0.8)'s
+        
         <map   margin_bottom='30%' margin_top='15%' border-colour='Rgb(0.5, 0.5, 0.5)' >
           <cartesian>
 			<x_date    automatic='on'/>
             <y_regular automatic='on'/>
            </cartesian>  
            
-           <text margin_bottom='80%' use_id='title'/>
+           <text margin_bottom='85%' use_id='title' > 
+         <font size='0.4'><spot_info key='parameter'/> </font>
+         </text>
            <vertical_axis  use_id='vaxis'/>                                       
           
             <horizontal_axis 
@@ -126,11 +144,23 @@
           
            <plot>
                 <epsgram use_id="station" parameter="2mt"/>
-				<epsgraph > <both/> </epsgraph>
+				<epsgraph legend='on' eps_legend_font_size= "0.4" eps_legend_font_colour= "navy"> <both/> </epsgraph>
 			</plot> 
-		    <legend display='absolute' bottom='-5%' left='0%' width='50%' height='25%' 
-		        plot_direction='column' columns='3' 
-		        text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/>	
-		  </map>
+		   
+		  
+          
+           </map> 
+           <legend
+                border= "off"
+                bottom= "-10%"
+                display= "absolute"
+                height= "25%"
+                left= "0%"
+                
+                legend_entry_text_width= "99."
+                legend_plot_direction= "column"
+                legend_text_height= "0.5"
+                width= "60%"
+            />
 	</page>
 </magics>
diff --git a/apps/metgram/10_days_wave_epsgram.xml b/apps/metgram/10_days_wave_epsgram.xml
index 452ca21..6d52851 100644
--- a/apps/metgram/10_days_wave_epsgram.xml
+++ b/apps/metgram/10_days_wave_epsgram.xml
@@ -29,28 +29,33 @@
         </epsgram>
  	
         <text  id="title" justification="left" font_style='bold'  font_size='0.4' 
-            colour='navy' font='sansserif' border='off' />
+            colour='navy' font='sansserif' border='off'/>
         	
 		<map id="box" border='on' 
             border_colour='navy' border_thickness='2'/>
 
-		<horizontal_axis id="haxis" axis_line="false" line_thickness="4" colour='navy'>
-			<automatic/>
-			<nolabel/>
-			<date/>
-			<noline/>
-            <nominortick colour='kelly_green'/>			
-			<grid line_style="dash" colour='kelly_green'/>
-            <tick colour='kelly_green'/>
-		</horizontal_axis>
+		<horizontal_axis id="haxis" 
+                    axis_grid= "on"
+                    axis_grid_colour= "evergreen"
+                    axis_grid_line_style= "dash"
+                    axis_line_colour= "navy"
+                    axis_minor_tick= "on"
+                    axis_minor_tick_colour= "navy"
+                    axis_tick_colour= "navy"
+                    axis_tick_label= "off"
+                    axis_type= "date"
+		/>
 
-		<vertical_axis id="vaxis" axis_line="false" line_thickness="4" colour='navy'>
-			<automatic/>
-			<noline/>
-            <label colour='navy' quality='sansserif'/>
- 			<grid line_style="dash" colour='kelly_green'/>
-            <tick colour='kelly_green'/>      
-		</vertical_axis>
+		<vertical_axis id="vaxis"  
+              
+                axis_grid_colour= "evergreen"
+                axis_grid_line_style= "dash"
+                axis_line= "on"
+                axis_line_colour= "navy"
+                axis_tick= "off"
+                
+        />   
+		
 	</definition>
     <drivers>
         <$ps/>
@@ -64,20 +69,26 @@
     <page height="10%" border='off'>
     <$meta/>     
      <nopageid/>
-        <text margin_left='10%' margin_bottom='0' height='35%'  width='40%' use_id='title'/>
+        
+        <text display='absolute' bottom='74%' height='10%' width='90%' use_id='title'>
+                <font size='0.4'>Wave Epsgram</font> <br/>
+                <font size='0.4'><spot_info key='station'/></font> <br/>
+                <font size='0.4'>Deterministic Forecast and EPS Distribution <spot_info key='base_date'/></font> <br/><br/>
+                <font size='0.4'><spot_info key='parameter'/></font> 
+                </text>
         <legend  display='absolute' height='30%' width='30%' bottom='60%'
                    plot_direction='column' left='50%' 
                    text_colour='navy' border='off' blanking='off'/>
-         <map height='65%' border='on' margin_top='1%'
+         <map  display='absolute' height='65%' bottom='0'  border='on' margin_top='1%'
             border_colour='navy' border_thickness='2'>
-        
+         
 			<cartesian>
 				<x_date automatic='on'/>
 				<y_regular  y_min="-43200" y_max="43200" />
 			</cartesian> 
 			
-			<horizontal_axis use_id="haxis"/>
-			<vertical_axis use_id="vaxis"><nolabel/><notick/><nogrid/></vertical_axis> 
+			<horizontal_axis use_id="haxis" />
+			<vertical_axis use_id="vaxis" axis_grid='off' axis_tick_label='off'/> 
 			<plot>
 				<epsgram use_id="eps_wind" type='epsrose' parameter="249.140" 
                     long_title='true' title_text='Wave Epsgram' long_title_height='off'
@@ -92,7 +103,9 @@
         </page>
      <page height="20%" border='on'>
          <nopageid/>
-         <text display='absolute' bottom='74%' height='10%' width='90%' use_id='title'/>
+         <text display='absolute' bottom='83%' height='10%' width='90%' use_id='title'>
+         <font size='0.4'><spot_info key='parameter'/></font> 
+         </text>
          <map use_id='box' display='absolute' bottom='0%' height='90%'>
            <cartesian>
 			<x_date  automatic='on' />
@@ -105,15 +118,18 @@
                     <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy'> <both/> </epsgraph>
 				</plot>
           <horizontal_axis use_id="haxis"/>
-				<vertical_axis use_id="vaxis"/>
+				<vertical_axis use_id="vaxis" axis_grid='on'/>
 			
 		</map>
     </page>
    
     
     <page height="20%" border='on'>
-        <nopageid/>
-         <text display='absolute' bottom='74%' height='10%' width='90%' use_id='title'/>
+        <nopageid/> 
+        <text display='absolute' bottom='83%' height='10%' width='90%' use_id='title'>
+         <font size='0.4'><spot_info key='parameter'/></font> 
+         </text>
+         
          <map use_id='box' display='absolute' bottom='0%' height='90%'>
            <cartesian>
 			<x_date  automatic='on' />
@@ -128,13 +144,16 @@
                     <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy'> <both/> </epsgraph>
 				</plot>
           <horizontal_axis use_id="haxis"/>
-				<vertical_axis use_id="vaxis"/>
+				<vertical_axis use_id="vaxis" axis_grid='on'/>
 			
 		</map>
     </page> 
      <page height="10%" border='off'>
          <nopageid/>
-         <text display='absolute' bottom='52%' height='10%' width='90%' use_id='title'/>
+          <text display='absolute' bottom='65%' height='10%' width='90%' use_id='title'>
+         <font size='0.4'><spot_info key='parameter'/></font> 
+         </text>
+         
         <legend  display='absolute' height='30%' width='30%' bottom='60%'
                    plot_direction='column' left='45%' 
                    text_colour='navy' border='off' blanking='off'/>
@@ -147,7 +166,7 @@
 			</cartesian> 
 			
 			<horizontal_axis use_id="haxis"/>
-			<vertical_axis use_id="vaxis"><nolabel/><notick/><nogrid/></vertical_axis> 
+			<vertical_axis use_id="vaxis" axis_tick_label='off'></vertical_axis> 
 			<plot>
 				<epsgram use_id="eps_wave" type='epsrose' parameter="230.140" parameter_title='Mean wave direction ( oceanographic convention )'/>
 				<epswave rose_wind_colour='Rgb(0.925, 0.609, 0.953)' rose_wind_convention='oceanographic'/>
@@ -167,7 +186,9 @@
     <page height="28%" border='off'>
      <pageid line_system_plot='off' line_date_plot='off' line_errors_plot='off' 
                 font='sansserif' line_colour='Rgb(0.8, 0.8, 0.8)'/>
-         <text display='absolute' bottom='85%' height='10%' width='90%' use_id='title'/>
+          <text display='absolute' bottom='90%' height='10%' width='90%' use_id='title'>
+         <font size='0.4'><spot_info key='parameter'/></font> 
+         </text>
          <map display='absolute' bottom='30%' height='60%' legend='40%' border='on' border_colour='navy' border_thickness='2' margin_top='1%'>
           
            <cartesian>
@@ -176,13 +197,13 @@
            </cartesian>  
          
                  <plot>
-					<epsgram use_id="eps_wave" type='epswave' parameter="232.140" parameter_title='ignore'/>
-                    <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy' 
+					<epsgram use_id="eps_wave" type='epswave' parameter="232.140" parameter_title='ignore' />
+                    <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy' legend='on'
                     font='sansserif' font_colour='navy' legend_resolution='degrees'> <both/> </epsgraph>
 				</plot>
                 <plot>
 					<epsgram use_id="eps_wave_det" type='epswave' parameter="232.140" parameter_title='Mean wave period (s)'/>
-                    <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy' 
+                    <epsgraph box_width='1.5' box_colour='greenish_blue' box_border_colour='navy' legend='on'
                     font='sansserif' font_colour='navy' legend_resolution='degrees' > <both/> </epsgraph>
 				</plot>
                  <horizontal_axis 
@@ -199,7 +220,7 @@
                 axis_type= "date"
                 axis_years_label_colour = "navy" />
                    
-            <vertical_axis use_id="vaxis"/>			          
+            <vertical_axis use_id="vaxis" axis_grid='on'/>			          
    		 		
 		</map>
         <legend display='absolute' width='47%' height='25%' bottom='-5%'
diff --git a/apps/metgram/15_days_epsgram.xml b/apps/metgram/15_days_epsgram.xml
index 641f197..6b6f035 100644
--- a/apps/metgram/15_days_epsgram.xml
+++ b/apps/metgram/15_days_epsgram.xml
@@ -18,30 +18,30 @@
 		     border-colour='grey' border-thickness='2'/>
 
 		<horizontal_axis id="haxis" 
-			axis_tick_label='off'
-			axis_grid='on' 
-			axis_grid_line_style='dash' 
-			axis_grid_colour='Rgb(0.5, 0.5, 0.5)' 
-			axis_line="false" line_thickness="4" colour='Rgb(0.5, 0.5, 0.5)'>
-			<automatic/>
-			<nolabel/>
-			<date/>
-			<noline/>
-			<nominortick colour='Rgb(0.5, 0.5, 0.5)'/>			
-			<grid line_style="solid" colour='Rgb(0.5, 0.5, 0.5)'/>
-			<tick colour='Rgb(0.5, 0.5, 0.5)'/>
-		</horizontal_axis>
+                    axis_grid= "on"
+                    axis_grid_colour= "grey"
+                    axis_grid_line_style= "dot"
+                    axis_line_colour= "charcoal"
+                    axis_minor_tick= "on"
+                    axis_minor_tick_colour= "charcoal"
+                    axis_tick_colour= "charcoal"
+                    axis_tick_label="off"
+                    axis_type= "date" />
+                
+		
 
-		<vertical_axis id="vaxis" axis_grid='on' 
-			axis_grid_line_style='dash' 
-			axis_grid_colour='Rgb(0.5, 0.5, 0.5)' 
-			axis_line="false" line_thickness="4" colour='Rgb(0.5, 0.5, 0.5)'>
-			<automatic/>
-			<noline/>
-			<label colour='Rgb(0.5, 0.5, 0.5)' quality='sansserif'/>
- 			<grid line_style="dash" colour='Rgb(0.5, 0.5, 0.5)'/>
-			<tick colour='grey'/>      
-		</vertical_axis>
+		<vertical_axis id="vaxis" 
+                    axis_grid= "on"
+                    axis_grid_colour= "grey"
+                    axis_grid_line_style= "dot"
+                    axis_grid_reference_level= "0"
+                    axis_grid_reference_thickness= "1"
+                    axis_label_font= "sansserif"
+                    axis_line= "on"
+                    axis_line_colour= "charcoal"
+                    axis_tick_colour= "charcoal"
+                    axis_tick_label_colour= "charcoal"
+                    axis_tick_label_height= "0.3" />
 
 	</definition>
 		<drivers>
@@ -60,7 +60,12 @@
 		<nopageid/>
 			<$meta/>
 			<map use_id='box'>
-				<text use_id='title' margin_bottom='80%' />
+				<text use_id='title' margin_bottom='85%' >
+                <font size='0.4'>Eps Meteogram</font> <br/>
+                <font size='0.4'><spot_info key='station'/></font> <br/>
+                <font size='0.4'>Extended Forecast based in EPS Distribution <spot_info key='base_date'/></font> <br/><br/>
+                <font size='0.4'><spot_info key='parameter'/></font> 
+                </text>
 				<cartesian>
 					<x_date  automatic='on' />
 					<y_regular automatic='on' />
@@ -76,7 +81,9 @@
 	<page height="19%" border='off'>
 		<nopageid/>
 		<map  use_id='box' >
-          <text margin_bottom='80%' use_id='title'/>
+          <text use_id='title' margin_bottom='85%' >
+                 <font size='0.4'><spot_info key='parameter'/></font> 
+                </text>
            <cartesian>
 			<x_date  automatic='on' />
             <y_regular automatic='on' y_min='0' y_max='20' />
@@ -101,21 +108,25 @@
 				<x_date automatic='on'/>
 				<y_regular  y_min="-43200" y_max="43200" />
 			</cartesian> 
-			<text bottom='55%' use_id='title'/>
+			 <text use_id='title' margin_bottom='75%' >
+                 <font size='0.4'><spot_info key='parameter'/></font> 
+                </text>
 			<horizontal_axis use_id="haxis"/>
 			<vertical_axis use_id="vaxis" axis_tick_label='off' axis_tick='off' axis_grid='off'></vertical_axis> 
 			<plot>
 				<epsgram use_id="eps" parameter="10m-wind-dd"/>
-				<epswind rose_wind_colour='gold' rose_wind_border_colour='Rgb(0.5000, 0.5000, 0.5000)'/>
+				<epswind legend ='on' rose_wind_colour='gold' rose_wind_border_colour='Rgb(0.5000, 0.5000, 0.5000)'/>
 			</plot>
-        <legend display='absolute' bottom='50%' left='1.25' width='20%' height='90%' 
-	        text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/>
-        </map>  
+       
+        </map> <legend display='absolute' bottom='50%' left='65%' width='20%' height='90%' 
+	        text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/> 
         </page>
 	<page height="19%" border='off'>
 		<nopageid/>
 		<map use_id='box'>
-			<text margin_bottom='78%' use_id='title'/>
+			 <text use_id='title' margin_bottom='85%' >
+                 <font size='0.4'><spot_info key='parameter'/></font> 
+                </text>
 			<cartesian>
 				<x_date  automatic='on' />
 				<y_regular automatic='on' y_min='0' y_max='20' />
@@ -136,26 +147,36 @@
 				<x_date automatic='on'/>
 				<y_regular automatic='on'/>
 			</cartesian>
-			<horizontal_axis use_id="haxis">
-				<date>
-				<both label_colour='Rgb(0.5, 0.5, 0.5)' label_height='0.3' />
-				<month label_height='0.4' label_colour='Rgb(0.5, 0.5, 0.5)'> <monthandyear /> </month>
-				<noyear height='0.4'/>
-				</date>
-				<label quality='sansserif'/>
-			</horizontal_axis>			
-			<vertical_axis  use_id="vaxis"/> 
-			<text margin_bottom='85%' use_id='title' display='absolute'/>		
+			<horizontal_axis axis_days_label= "both"
+                    axis_days_label_colour= "charcoal"
+                    axis_days_label_height= "0.3"
+                    axis_grid= "on"
+                    axis_grid_colour= "Rgb(0.5, 0.5, 0.5)"
+                    axis_grid_line_style= "dash"
+                    axis_line_colour= "charcoal"
+                    axis_minor_tick= "on"
+                    axis_minor_tick_colour= "charcoal"
+                    axis_months_label_colour= "charcoal"
+                    axis_months_label_height= "0.3"
+                    axis_tick_colour= "charcoal"
+                    axis_type= "date"
+                    axis_years_label_colour= "charcoal"
+                    axis_years_label_height= "0.3"
+            />			
+			<vertical_axis  use_id='vaxis'/> 
+			 <text use_id='title' margin_bottom='90%' >
+                 <font size='0.4'><spot_info key='parameter'/></font> 
+                </text>		
 			<plot>
 				<epsgram use_id="eps" parameter="temperature"/>
-				<epsgraph border_colour='Rgb(0.5, 0.5, 0.5)' 
+				<epsgraph border_colour='Rgb(0.5, 0.5, 0.5)' legend='on'
 				left_box_colour='sky' box_median_colour='black' right_box_colour='RGB(1.0, 0.222, 0.222)'
 				font='sansserif' font_colour='Rgb(0.5, 0.5, 0.5)' box_colour='grey'
 				box_border_colour='Rgb(0.5, 0.5, 0.5)'> <both/> </epsgraph>
 			</plot>
 		</map>
-		<legend display='absolute' bottom='10%' left='20%' width='20%' height='25%' 
-		        plot_direction='column' text_colour='Rgb(0.5, 0.5, 0.5)' border='on' blanking='off'/>
+		<legend display='absolute' bottom='0%' left='5%' width='20%' height='30%' 
+		        plot_direction='column' text_colour='Rgb(0.5, 0.5, 0.5)' border='off' blanking='off'/>
         
 	</page>
 </magics>
diff --git a/apps/metgram/Makefile.in b/apps/metgram/Makefile.in
index b193d31..2097f61 100644
--- a/apps/metgram/Makefile.in
+++ b/apps/metgram/Makefile.in
@@ -154,6 +154,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -238,6 +239,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/configure b/configure
index 65e9252..374f817 100755
--- a/configure
+++ b/configure
@@ -860,6 +860,7 @@ raster
 proj4
 spot
 bufr
+EMOS_LIB_PATH
 EMOS_LIB_NAME
 FORTRAN_LIB_PATH
 GRIBAPI_ROOT
@@ -892,6 +893,7 @@ CPPLIBS
 PLATFORM_DEFINES_MARS
 SHLIB_EXT
 AXX
+SWIG
 python
 NUMPY_INCLUDE
 pkgpyexecdir
@@ -5513,13 +5515,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5516: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5518: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5519: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5521: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5522: output\"" >&5)
+  (eval echo "\"\$as_me:5524: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6724,7 +6726,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6727 "configure"' > conftest.$ac_ext
+  echo '#line 6729 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7956,11 +7958,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7959: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7961: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7963: \$? = $ac_status" >&5
+   echo "$as_me:7965: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8295,11 +8297,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8298: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8300: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8302: \$? = $ac_status" >&5
+   echo "$as_me:8304: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8400,11 +8402,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8403: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8405: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8407: \$? = $ac_status" >&5
+   echo "$as_me:8409: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8455,11 +8457,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8458: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8460: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8462: \$? = $ac_status" >&5
+   echo "$as_me:8464: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10822,7 +10824,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10825 "configure"
+#line 10827 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10918,7 +10920,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10921 "configure"
+#line 10923 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13806,11 +13808,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13809: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13811: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13813: \$? = $ac_status" >&5
+   echo "$as_me:13815: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13905,11 +13907,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13908: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13910: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13912: \$? = $ac_status" >&5
+   echo "$as_me:13914: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13957,11 +13959,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13960: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13962: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13964: \$? = $ac_status" >&5
+   echo "$as_me:13966: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15765,11 +15767,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15768: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15770: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15772: \$? = $ac_status" >&5
+   echo "$as_me:15774: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -15864,11 +15866,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15867: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15869: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15871: \$? = $ac_status" >&5
+   echo "$as_me:15873: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15916,11 +15918,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15919: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15921: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15923: \$? = $ac_status" >&5
+   echo "$as_me:15925: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -18101,6 +18103,44 @@ $as_echo "yes" >&6; }
   $as_echo "#define MAGICS_PYTHON 1" >>confdefs.h
 
 
+
+  # Extract the first word of "swig", so it can be a program name with args.
+set dummy swig; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_SWIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$SWIG"; then
+  ac_cv_prog_SWIG="$SWIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_SWIG="swig"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+SWIG=$ac_cv_prog_SWIG
+if test -n "$SWIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
+$as_echo "$SWIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 fi
 
 #
@@ -19948,11 +19988,12 @@ fi
 
 
 EMOS_LIB_NAME="emosR64"
+EMOS_LIB_PATH="/usr/local/lib"
 
 
 # Check whether --with-emos-libraries was given.
 if test "${with_emos_libraries+set}" = set; then :
-  withval=$with_emos_libraries; LDFLAGS="-L$with_emos_libraries $LDFLAGS"
+  withval=$with_emos_libraries; LDFLAGS="-L$with_emos_libraries $LDFLAGS";EMOS_LIB_PATH=${with_emos_libraries}
 
 fi
 
diff --git a/configure.ac b/configure.ac
index 6d57c13..560eb50 100644
--- a/configure.ac
+++ b/configure.ac
@@ -137,6 +137,8 @@ then
     fi
   AC_DEFINE(MAGICS_PYTHON, 1)
   AC_SUBST(python)
+
+  AC_CHECK_PROG(SWIG, swig, swig)
 fi
 
 #
@@ -647,10 +649,11 @@ AC_ARG_WITH([fortran-libraries],
 AC_SUBST(FORTRAN_LIB_PATH)
 
 EMOS_LIB_NAME="emosR64"
+EMOS_LIB_PATH="/usr/local/lib"
 
 AC_ARG_WITH([emos-libraries],
        [AS_HELP_STRING([--with-emos-libraries],[Locaction of EMOS library @<:@default is /usr/local/lib@:>@])],
-       [LDFLAGS="-L$with_emos_libraries $LDFLAGS"]
+       [LDFLAGS="-L$with_emos_libraries $LDFLAGS";EMOS_LIB_PATH=${with_emos_libraries}]
 )
 
 AC_ARG_WITH([emos-libname],
@@ -664,7 +667,7 @@ AC_CHECK_LIB(${EMOS_LIB_NAME},pbopen,echo "Emoslib found.",
 AC_DEFINE(MAGICS_BUFR, 1)
 MAGICS_3RDPARTY_LIBS="-l${EMOS_LIB_NAME} $MAGICS_3RDPARTY_LIBS"
 AC_SUBST(EMOS_LIB_NAME)
-
+AC_SUBST(EMOS_LIB_PATH)
 
 else   # MvOBS link failed
 bufr="no"
diff --git a/debian/README-testfailures.txt b/debian/README-testfailures.txt
deleted file mode 100644
index 62aa9c4..0000000
--- a/debian/README-testfailures.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-This package fails the test fortran/layout_test in some circumstances.
-
-As it passes in others, I suspect a bad test, and have enabled the package, disabling the tests
-for the meantime.
-
-Details debugged so far:
-(1) ./layout_test works for me (TM)
-(2) "make check" fails on this test.
-(3) setting ulimit -s 8192 make check makes it work, on some platforms.
-
-Running the test under valgrind leads to:
-
-==10896== Process terminating with default action of signal 11 (SIGSEGV)
-==10896==  Access not within mapped region at address 0xBD08D00
-==10896==    at 0x42162D3: magics::Matrix::operator()(int, int) const (Matrix.h:300)
-==10896==    by 0x4219BD1: magics::MatrixHandler<magics::GeoPoint>::operator()(int, int) const (MatrixHandler.h:57)
-
-while Matrix.h has:
-
-
-297     double operator()(int row, int column) const
-298     {
-299            // Here for perfrormance we are trusting the user we do not catch exception 
-300                                 return (*this)[ row * columns_ + column];
-301 
-302     }
-
-Core dump:
-
-
-Core was generated by `./layout_test'.
-Program terminated with signal 11, Segmentation fault.
-#0  magics::Matrix::operator() (this=0x77eb0b98, row=511, column=85) at ../../src/common/Matrix.h:300
-300                                     return (*this)[ row * columns_ + column];
-(gdb) 
-(gdb) where
-#0  magics::Matrix::operator() (this=0x77eb0b98, row=511, column=85) at ../../src/common/Matrix.h:300
-#1  0x4020ebd2 in magics::MatrixHandler<magics::GeoPoint>::operator() (this=0x77ee42e0, i=511, j=85) at ../../src/common/MatrixHandler.h:57
-#2  0x4020ebd2 in magics::MatrixHandler<magics::GeoPoint>::operator() (this=0xbfe0d384, i=511, j=85) at ../../src/common/MatrixHandler.h:57
-#3  0x4024f140 in magics::BoxMatrixHandler<magics::GeoPoint>::operator() (this=0xbfe0d240, row=0, column=0) at ../../src/common/MatrixHandler.h:622
-#4  0x4020ebd2 in magics::MatrixHandler<magics::GeoPoint>::operator() (this=0x7864b458, i=0, j=0) at ../../src/common/MatrixHandler.h:57
-#5  0x4021140f in MatrixTreshold<magics::GeoPoint>::operator() (this=0xbfe0d340, row=0, column=0) at ../../src/visualisers/Contour.cc:69
-#6  0x4021cf88 in setMinMax (this=0xbfe0d340) at ../../src/common/MatrixHandler.h:166
-#7  max (this=0xbfe0d340) at ../../src/common/MatrixHandler.h:186
-#8  magics::MatrixHandler<magics::GeoPoint>::max (this=0xbfe0d340) at ../../src/common/MatrixHandler.h:182
-#9  0x4024e4fb in magics::Contour<magics::GeoPoint>::operator() (this=0x85f4e68, data=..., parent=...) at ../../src/visualisers/Contour.cc:124
-#10 0x4022110a in magics::VisualAction<magics::GeoPoint>::visit (this=0x85f3788, drawing=...) at VisualAction.cc:82
-#11 0x402f4f37 in magics::DrawingVisitor::visit (this=0x78961678, object=...) at SceneVisitor.h:116
-#12 0x4021aa14 in magics::VisualAction<magics::GeoPoint>::visit (this=0x85f3788, layer=..., visitors=...) at VisualAction.cc:268
-#13 0x402cd2e5 in magics::ViewNode::visit (this=0x85f3b80, tree=...) at ViewNode.cc:263
-#14 0x402c9312 in dispatch<magics::SceneLayer> (visitor=..., this=0x85f37c0) at BasicSceneObject.h:194
-#15 magics::FortranSceneNode::visit (this=0x85f37c0, tree=...) at SceneNode.cc:130
-#16 0x402c806e in dispatch<magics::Layout> (visitor=..., this=0x85ea528) at BasicSceneObject.h:194
-#17 visit (tree=..., this=0x85ea528) at BasicSceneObject.h:256
-#18 magics::RootScenePage::visit (this=0x85ea528, tree=...) at RootSceneNode.h:61
-#19 0x402c5c36 in dispatch<magics::Layout> (visitor=..., this=0x85eb220) at BasicSceneObject.h:194
-#20 magics::RootSceneNode::execute (this=0x85eb220) at RootSceneNode.cc:255
-#21 0x402000e9 in magics::FortranMagics::pclose (this=0x85e8728) at FortranMagics.cc:150
-#22 0x4035b994 in pclose_ () at MagicsCalls.cc:714
-#23 0x080491f7 in layout_test () at layout_test.f:96
-#24 main (argc=1, argv=0xbfe0ed4d "./layout_test") at layout_test.f:99
-#25 0x40ac6e46 in __libc_start_main (main=0x8048e90 <main>, argc=1, ubp_av=0xbfe0d794, init=0x804aba0 <__libc_csu_init>, fini=0x804ab90 <__libc_csu_fini>, 
-    rtld_fini=0x4000e310, stack_end=0xbfe0d78c) at libc-start.c:228
-#26 0x08049261 in _start ()
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index 345beb2..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,247 +0,0 @@
-magics++ (2.18.7-2) unstable; urgency=low
-
-  * libproj-dev is now a requirement, not optional. Include it.
-    Closes: #695963. 
-  * Enable hardening.
-  * Don't ship empty dir /usr/share/magics in -dev package.
-  * -data package is now M-A: foreign to satisfy m-a dependencies.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 18 Dec 2012 11:54:23 +0000
-
-magics++ (2.18.7-1) unstable; urgency=low
-
-  * New upstream release.
-  * Now at Standards-Version: 3.9.4
-  * Patch from Michael Terry for Ubuntu to delete bogus symlinks when 
-    building.
-  * Remove --with-terralib as no longer understood by configure;
-    MAGPLUS_HOME needs to be set when configure run
-  * python-magics++ now depends on python-simplejson
-
- -- Alastair McKinstry <mckinstry at debian.org>  Mon, 10 Dec 2012 06:22:47 +0000
-
-magics++ (2.14.11-4) unstable; urgency=low
-
-  * Rebuild to fix gcc-4.7 issue. Closes: #646734 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 14 Jun 2012 12:32:31 +0100
-
-magics++ (2.14.11-3) unstable; urgency=low
-
-  * Don't forget libdir. read it from pkg-config too. Closes: #674472. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 08 Jun 2012 13:31:18 +0100
-
-magics++ (2.14.11-2) unstable; urgency=low
-
-  * Make magics-config use pkg-config to retrieve arch-dependent variables,
-    for multi-arch support. Closes: #674472. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 07 Jun 2012 16:13:01 +0100
-
-magics++ (2.14.11-1) unstable; urgency=low
-
-  * Standards-Version: 3.9.3. No changes required.
-  * New upstream release.
-  * Fixes for gcc-4.7. Closes: #673885.
-  * Now need python-instant for numpy.i, which is no longer shipped in the
-    swig/ directory.
-  * Now use xz compression.
-  * Make "./debian rules clean" actually work.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 22 May 2012 17:42:33 +0100
-
-magics++ (2.14.5-2) unstable; urgency=low
-
-  * boostlib > 1.32 needs libboost-dev dependency to build. 
-  Closes: #653298. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sun, 01 Jan 2012 13:05:35 +0000
-
-magics++ (2.14.5-1) unstable; urgency=low
-
-  * New upstream release.
-  * Fix typo in homepage description. Closes: #571529. 
-  * Fix FTBFS in as-needed patch which no longer applied correctly.
-    Closes: #650453.
-  * Remove patches to Makefile.in, now its autogenerated. Just patch
-    Makefile.am.
-  * Move python-magics++ into Section: python from utils
-  
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 21 Dec 2011 15:03:16 +0000
-
-magics++ (2.12.9-5) unstable; urgency=low
-
-  * Recommends: pkg-config in -dev package.
-  * Rebuild against new libgrib-api-dev. 
-  * Change section: for python-magics to utils, to match overrides. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 20 Oct 2011 10:40:35 +0100
-
-magics++ (2.12.9-4) unstable; urgency=low
-
-  * Add "-lz" to the LIBS to ensure its linked in correctly, adding zlib1-dev
-   to the B-D to ensure it is present. 
-  * Move libMagPlusSingle.a into /usr/lib/${DEB_HOST_MULTIARCH}/ dir
-    Closes: #642446.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sat, 24 Sep 2011 15:05:00 +0100
-
-magics++ (2.12.9-3) unstable; urgency=low
-
-  * Add as-needed.patch to ltmain.sh to fix -Wl,--as-needed issues 
-  * Add LIBS=" -lX11 -lpng12" to configure line to link directly libraries that
-    are needed. 
-  * Disable test: layout_test fails on some platforms, but only within the 
-    Make check context; debugging in progress, but fix FTBFS for python 
-    transition. Details in README-testfailures.txt in debian/
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 13 Sep 2011 13:45:47 +0100
-
-magics++ (2.12.9-2) unstable; urgency=low
-
-  * Allow building against libhdf5-dev, not just libhdf5-serial-dev. 
-  * Add DEP-3 tags to patches
-  * Loop over and include support for all supported python versions.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sat, 10 Sep 2011 11:18:22 +0100
-
-magics++ (2.12.9-1) unstable; urgency=low
-
-  * New upstream release.
-  * Test: layout_test breaks unless ulimit -s 8192 is set beforehand
-     in the debian/rules. Why?
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 08 Jul 2011 17:16:45 +0100
-
-magics++ (2.12.8.dfsg-1) unstable; urgency=low
-
-  * New upstream release.
-  * Move build system from cdbs to debhelper 7
-  * Move from python-support to dhpython2
-  * Depend on libopenjpeg-dev, for grib-api functionality. 
-  * Move to Standards-Version: 3.9.2 
-  * Build against libterralib3-dev, was libterralib1-dev. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Sat, 18 Jun 2011 17:27:27 +0100
-
-magics++ (2.10.0.dfsg-7) unstable; urgency=low
-
-  * Depend on ${python:Depends}. Closes: #609197. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 11 Jan 2011 21:01:37 +0000
-
-magics++ (2.10.0.dfsg-6) unstable; urgency=low
-
-  * FTBFS with python2.7. Patch from Sameer Morar. Closes: #608788.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 04 Jan 2011 11:25:40 +0000
-
-magics++ (2.10.0.dfsg-5.1) unstable; urgency=low
-
-  * Non-maintainer upload.
-  * debian/patches
-    - (cve-2010-3393--bug598418): Refresh patch. Restore deleted line
-      'python="@MAGICS_PYTHON@"' and adjust $ldlib.
-      (important, security, reopened; Closes: #598418).
-
- -- Jari Aalto <jari.aalto at cante.net>  Sun, 24 Oct 2010 19:20:57 +0300
-
-magics++ (2.10.0.dfsg-5) unstable; urgency=low
-
-  * CVE-2010-3393: Fix LD_LIBRARY_PATH edit. Closes: #598418. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 29 Sep 2010 12:43:09 +0100
-
-magics++ (2.10.0.dfsg-4) unstable; urgency=low
-
-  * Explicitly add dh_pysupport call to triger update-python-modules in
-    postinst, prerm files. Also, move *.so files in python-magics++.install to 
-    /usr/lib/pymodules so that they are found and acted upon. Closes: #592422. 
-  * Added python-magics++ to Section: python as recommended by lintian.
-  * Added clean rule to delete symlinks, so double-builds succeed.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 11 Aug 2010 10:07:21 +0100
-
-magics++ (2.10.0.dfsg-3) unstable; urgency=low
-
-  * Build-Depend on python-numpy as well. Closes: #590951. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 30 Jul 2010 17:40:23 +0100
-
-magics++ (2.10.0.dfsg-2) unstable; urgency=low
-
-  * Add python support package python-magics++:
-    * Add build-depends on python-all-dev, swig, python-support
-    * Temporararily disable tests, as python tests have paths trouble.
-    * Remove rpath with chrpath
-  * Standrds-Version: 3.9.1
-
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 28 Jul 2010 01:02:07 +0100
-
-magics++ (2.10.0.dfsg-1) unstable; urgency=low
-
-  * New Upstream release
-   - DFSG version has terralib and pdfs removed.
-  * Move to Standards-Version: 3.9.0
-
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 21 Jul 2010 08:19:15 +0100
-
-magics++ (2.8.0.dfsg-5) unstable; urgency=low
-
-  * Typo in homepage URL. Closes: #571529.
-  * Move to Standards-Version: 3.8.4, no changes required. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 26 Feb 2010 11:43:35 +0000
-
-magics++ (2.8.0.dfsg-4) unstable; urgency=low
-
-  * Build-Dep: libxml-parser-perl and python for tests.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Thu, 07 Jan 2010 12:46:27 +0000
-
-magics++ (2.8.0.dfsg-3) unstable; urgency=low
-
-  * Add Build-Depends: libtool. 
-  * Set MAGPLUS_HOME in debian/rules so that tests run, and add gfortran 
-    dependency for fortran tests, Add Build-Dep on ttf-dejavu-core for testing.
-  * Disable printer_test as it requires a data file thats missing. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 06 Jan 2010 21:30:31 +0000
-
-magics++ (2.8.0.dfsg-2) unstable; urgency=low
-
-  * Patch: enable static libs in configure.ac. Closes: #562120. 
-  * Add dynamic_linking.patch to link libs to libMagPlus directly rather
-    than just magmlx, and remove libs via --as-needed.
-
- -- Alastair McKinstry <mckinstry at debian.org>  Wed, 23 Dec 2009 09:33:38 +0000
-
-magics++ (2.8.0.dfsg-1) unstable; urgency=low
-
-  * New upstream release. 
-  * Add libjasper dependency for grib-api. Add Closes: #562040.
-  * Added libcairo2-dev, libpango1.0-dev build dependencies now needed.
-  * Removed dependency on quilt ; now source format 3.0, so dpkg handles
-   this. 
-  * EpsBufr.patch now in upstream; removed
-
- -- Alastair McKinstry <mckinstry at debian.org>  Tue, 22 Dec 2009 11:26:27 +0000
-
-magics++ (2.6.4~dfsg-1) unstable; urgency=low
-
-  * Initial Debian release. Closes: #522984.
-  * Removed pdfs, making dfsg-free version.
-  * Removed terralib from sources; now use external terralib library, for
-    licensing reasons. 
-  * Change version number to ~ before upload, so non-dfsg can go away if 
-    PDF sources issue solved.
-  * Move to Standards-Version: 3.8.3
-  * DH_COMPAT is now 7. 
-  * Moved shared data to libmagics++-data.
-  * Build against libgrib-api, libemos-dev now in unstable.
-  * libmagics++ depends on ttf-dejavu-* fonts rather than includes them;
-  * Build-depend on libhdf5-serial-dev rather than virtual libhdf5-dev
-  * Removed ttf fonts. 
-
- -- Alastair McKinstry <mckinstry at debian.org>  Fri, 06 Nov 2009 19:54:22 +0000
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 7fae0e2..0000000
--- a/debian/control
+++ /dev/null
@@ -1,87 +0,0 @@
-Source: magics++
-Section: utils
-Priority: optional
-Maintainer: Alastair McKinstry <mckinstry at debian.org>
-Build-Depends: debhelper  (>= 8.1.3~) , dh-buildinfo, libhdf5-serial-dev | libhdf5-dev, libnetcdf-dev, libgl1-mesa-dev, libgd2-xpm-dev, libemos-dev, libgrib-api-dev, libterralib-dev, libjasper-dev, libcairo2-dev, libpango1.0-dev, autoconf, automake, libtool, gfortran, ttf-dejavu-core, libxml-parser-perl, python-all-dev (>= 2.6.6-3) , swig, chrpath, python-numpy, libopenjpeg-dev, ghostscript, zlib1g-dev, dh-autoreconf (>= 4~), libboost-dev, python-instant, python3-all-dev, libproj-dev
-Standards-Version: 3.9.3
-Homepage: http://www.ecmwf.int/products/data/software/magics++.html
-X-Python-Version: >= 2.6
-
-Package: libmagplus3
-Section: libs
-Architecture: any
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends: libmagics++-data,${misc:Depends}, ${shlibs:Depends}, ttf-dejavu-core, ttf-dejavu-extra, ghostscript
-Description: ECMWF meteorological plotting software library
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- The library supports the plotting of contours, wind fields, observations,
- satellite images, symbols, text, axis and graphs (including boxplots).
- .
- Data fields to be plotted may be presented in various formats,
- for instance GRIB 1 and 2 code data, Gaussian grid, regularly spaced grid
- and fitted data. Input data can also be in BUFR and NetCDF format
- or retrieved from an ODB database.
- .
- The produced meteorological plots can be saved in various formats,
- such as PostScript, EPS, PDF, GIF, PNG, SVG and KML.
-
-Package: libmagics++-dev
-Section: libdevel
-Architecture: any
-Multi-Arch: same
-Depends: libmagplus3 ( = ${binary:Version} ), ${misc:Depends}, ${python:Depends}
-Recommends: pkg-config
-Description: Development files for ECMWF  plotting software MAGICS++
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package includes the header files and static libraries needed to build 
- against libmagics++.
-
-Package: magics++
-Architecture: any
-Multi-Arch: foreign
-Depends: libmagplus3 ( = ${binary:Version} ), ${misc:Depends}, ${shlibs:Depends}, ${python:Depends}
-Description: Executables for the magics++ library
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package contains the MagcML binary that may be used with magics++.
-
-Package: python-magics++
-Section: python
-Architecture: any
-Depends:  libmagplus3 ( = ${binary:Version} ), ${misc:Depends}, ${shlibs:Depends}, ${python:Depends}, python, python-simplejson
-Description: python support for Magics++
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package provides python support for the magics++ library.
-
-Package: libmagics++-data
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Description: Data files needed for magics++ library
- Magics++ is the latest generation of the ECMWF's Meteorological plotting
- software MAGICS. Although completely redesigned in C++, it is intended to be
- as backwards-compatible as possible with the Fortran interface.
- Besides its programming interfaces (Fortran and C), Magics++ offers MagML,
- a plot description language based on XML aimed at automatic web production.
- .
- This package contains data expected by the magics++ library.
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index 58ad2e4..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,48 +0,0 @@
-This package was debianized by Alastair McKinstry <mckinstry at debian.org>, on
-Mon,  6 Apr 2009 16:22:04 +0100.  It was downloaded from
-http://www.ecmwf.int/products/data/software/magics++.html.
-
-The Debian packaging is Copyright  2009, Alastair McKinstry <mckinstry at debian.org>,
-is licensed under the terms of the GNU GPL version 3.
-
-Magics++
-========
-
-Copyright 2007,2008 ECMWF
-
-This product mainly includes software developed at "The European Centre for 
-Medium-Range Weather Forecasts" (ECMWF - http://www.ecmwf.int ).
-
-Licensed under the Apache License, version 2.0
-The text of the license can be found in /usr/share/common-licenses/Apache-2.0
-
-OpenGL font rendering - OGLFT
-=============================
-
-(src/driver/OpenGLDriverText.cc/.h)
-
- * OGLFT: A library for drawing text with OpenGL using the FreeType library
- * Copyright (C) 2002 lignum Computing, Inc. <oglft at lignumcomputing.com>
- * $Id: OGLFT.cpp,v 1.11 2003/10/01 14:21:18 allen Exp $
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-G S H H S
-=========
-Global Self-consistant Hierarchical High-resolution Shorelines.
-This is shipped with magics++, and is also covered by the Gnu General Public License.
-The text of the license can be found in /usr/share/common-licenses/GPL-2.0.
-
-The original GSHHS can be retrieved from: http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html
diff --git a/debian/libmagics++-data.install b/debian/libmagics++-data.install
deleted file mode 100644
index 1d24459..0000000
--- a/debian/libmagics++-data.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/share/magics/* usr/share/magics
diff --git a/debian/libmagics++-dev.install b/debian/libmagics++-dev.install
deleted file mode 100644
index b9b193c..0000000
--- a/debian/libmagics++-dev.install
+++ /dev/null
@@ -1,10 +0,0 @@
-debian/tmp/usr/lib/*/libMagPlusSingle.a 
-debian/tmp/usr/lib/*/libMagPlusDouble.a 
-debian/tmp/usr/lib/*/libMagPlus.a 
-debian/tmp/usr/include/magics usr/include
-debian/tmp/usr/bin/magics-config usr/bin
-debian/tmp/usr/lib/*/pkgconfig/magics.pc 
-debian/tmp/usr/share/aclocal/magics.m4	usr/share/aclocal
-debian/tmp/usr/bin/magicsCompatibilityChecker usr/bin
-
-
diff --git a/debian/libmagplus3.install b/debian/libmagplus3.install
deleted file mode 100644
index a9811bf..0000000
--- a/debian/libmagplus3.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/lib/*/libMagPlus.so.3.0.0 
diff --git a/debian/magics++.install b/debian/magics++.install
deleted file mode 100644
index 24ecec0..0000000
--- a/debian/magics++.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/magjson  
-usr/bin/magmlx  
-usr/bin/mapgen_clip
diff --git a/debian/patches/cve-2010-3393.patch b/debian/patches/cve-2010-3393.patch
deleted file mode 100644
index 9d0465a..0000000
--- a/debian/patches/cve-2010-3393.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 4d974cdaf4547520d6ce335f88f5f67712e97766 Mon Sep 17 00:00:00 2001
-From: Jari Aalto <jari.aalto at cante.net>
-Date: Sat, 16 Oct 2010 19:52:12 +0300
-Subject: [PATCH] CVE-2010-3393 insecure library loading Bug#598418
-Organization: Private
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jari Aalto <jari.aalto at cante.net>
----
-Index: magics++-2.18.1/magics-config.in
-===================================================================
---- magics++-2.18.1.orig/magics-config.in	2012-10-15 12:23:32.000000000 +0100
-+++ magics++-2.18.1/magics-config.in	2012-10-31 15:38:22.000000000 +0000
-@@ -76,6 +76,7 @@
- 	fi
- fi
- 
-+ldlib="${prefix}/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
- if test $# -eq 0; then
- 	usage 1 1>&2
- fi
-@@ -132,7 +133,7 @@
- 		echo ""
- 		echo "   export MAGPLUS_HOME=${prefix}"
- 		echo "   export PATH=${prefix}/bin:\$PATH"
--		echo "   export LD_LIBRARY_PATH=${libdir}:\$LD_LIBRARY_PATH"
-+                echo "   export LD_LIBRARY_PATH=\"$ldlib\""
- 		echo "   export PYTHONPATH=\"${py_dir}:\${PYTHONPATH:-/usr/lib}\""
- 		echo ""
- 		echo " You might want add these lines to your login scripts (.profile, .kshrc or .bashrc)."
diff --git a/debian/patches/dynamic_link.patch b/debian/patches/dynamic_link.patch
deleted file mode 100644
index eb7d270..0000000
--- a/debian/patches/dynamic_link.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: Link libMagPlus.so.3.0.0 against extra libraries that are provided
- in dynamic form by Debian.
-Author: Alastair McKinstry <mckinstry at debian.org>
-Last-Updated: 2010-07-23
-Forwarded: no
-
-Index: magics++-2.18.1/configure.ac
-===================================================================
---- magics++-2.18.1.orig/configure.ac	2012-10-15 12:23:25.000000000 +0100
-+++ magics++-2.18.1/configure.ac	2012-10-31 15:38:08.000000000 +0000
-@@ -724,7 +724,9 @@
- fi
- AC_SUBST(proj4)
- 
--
-+# Add dynamic libs needed by Debian
-+LIBS="$CAIRO_LIBS $LIBS -lemosR64 -lgrib_api -lterralib -lstdc++ -lm $NETCDF_LIBS"
-+LDFLAGS="$CAIRO_LDFLAGS $LDFLAGS -Wl,--as-needed"
- 
- ############################################
- #
diff --git a/debian/patches/enable_static.patch b/debian/patches/enable_static.patch
deleted file mode 100644
index 6b1325d..0000000
--- a/debian/patches/enable_static.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Enable building static libs
-Last-Updated: 2011-06-16
-Forwarded: not-needed
-
-Index: magics++-2.18.1/configure.ac
-===================================================================
---- magics++-2.18.1.orig/configure.ac	2012-10-31 15:38:30.000000000 +0000
-+++ magics++-2.18.1/configure.ac	2012-10-31 15:38:38.000000000 +0000
-@@ -55,7 +55,7 @@
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
- 
- 
--AC_DISABLE_STATIC         # TEMPORARY !!!!
-+#AC_DISABLE_STATIC         # TEMPORARY !!!!
- AC_AIX
- LT_INIT
- #AC_PROG_CC([xlc_r icc aCC gcc cc CC])
diff --git a/debian/patches/gcc-4.7.patch b/debian/patches/gcc-4.7.patch
deleted file mode 100644
index e76b7a9..0000000
--- a/debian/patches/gcc-4.7.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Fixes needed for compilation with gcc-4.7
-Forwarded: no
-Last-Updaged: 2012-05-22
-Bug-Origin: http://bugs.debian.org/673885.
-
-Index: magics++-2.18.1/src/visualisers/IsoPlot.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/IsoPlot.cc	2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/IsoPlot.cc	2012-10-31 15:46:02.000000000 +0000
-@@ -456,36 +456,36 @@
-        RangeType def = cell->range();
-             
-        if ( def != multipleRange ) {
--             push_back(cell);
-+             this->push_back(cell);
-        }
-        else {
-              delete cell;
--             push_back(new CellBox(parent_, row1_, row, column1_, column));
--             push_back(new CellBox(parent_, row+1, row2_, column1_, column));
-+             this->push_back(new CellBox(parent_, row1_, row, column1_, column));
-+             this->push_back(new CellBox(parent_, row+1, row2_, column1_, column));
-        }
-        cell = new CellBox(parent_, row1_, row2_, column+1, column2_);
-        def = cell->range();
- 
-        if ( def != multipleRange ) {
--             push_back(cell);
-+             this->push_back(cell);
-        }
-        else {
-              delete cell;
--             push_back(new CellBox(parent_, row1_, row, column+1, column2_));
--             push_back(new CellBox(parent_, row+1, row2_, column+1, column2_));
-+             this->push_back(new CellBox(parent_, row1_, row, column+1, column2_));
-+             this->push_back(new CellBox(parent_, row+1, row2_, column+1, column2_));
-        }
-        return;
-     }
- 
-     if (row2_- row1_ > 0) {
--       push_back(new CellBox(parent_, row1_, row, column1_, column2_));
--       push_back(new CellBox(parent_, row+1, row2_, column1_, column2_));
-+       this->push_back(new CellBox(parent_, row1_, row, column1_, column2_));
-+       this->push_back(new CellBox(parent_, row+1, row2_, column1_, column2_));
-        return;
-     }
- 
-     if (column2_- column1_ > 0) {
--       push_back(new CellBox(parent_, row1_, row2_, column1_, column));
--       push_back(new CellBox(parent_, row1_, row2_, column+1, column2_));
-+       this->push_back(new CellBox(parent_, row1_, row2_, column1_, column));
-+       this->push_back(new CellBox(parent_, row1_, row2_, column+1, column2_));
-        return;
-     }
- }
-@@ -1302,12 +1302,12 @@
-  */
-  void IsoPlot::operator()(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
- {
--    prepare(data);
-+    this->prepare(data);
-     if ( legend_only_ ) return;
-     
-     {
-         Timer timer("contouring", "Time spent in contouring");
--        isoline(data, parent);
-+        this->isoline(data, parent);
-     }
- 
- #ifdef ISOPLOT_DEBUG
-@@ -1352,7 +1352,7 @@
-  void NoIsoPlot::operator()(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
- {
-     // Create the isolines...        
--    if ( !prepare(data) ) {    
-+    if ( !this->prepare(data) ) {    
-         if ( legend_only_ ) return;
-         (*shading_)(data, parent);
-         // do not send the isolines...  
-Index: magics++-2.18.1/src/visualisers/Filter.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/Filter.cc	2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/Filter.cc	2012-10-31 15:41:45.000000000 +0000
-@@ -202,7 +202,7 @@
- 			{
- //				MagLog::debug() << "Min " << lin+fcr+1 << " " << col+fcc+1 << " " << val << "\n";
- 				lo = lo+1;
--				push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
-+				this->push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
- 				this->back().low(true);
- 				this->back().high(false);
- 			}
-@@ -233,7 +233,7 @@
- 			{
- //				MagLog::debug() << "Max " << lin+fcr+1 << " " << col+fcc+1 << " " << val << "\n";
- 				hi = hi+1;
--				push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
-+				this->push_back(UserPoint(this->matrix_.column(lin+fcr, col+fcc),this->matrix_.row(lin+fcr, col+fcc),val));
- 				this->back().high(true);
- 				this->back().low(false);
- 			}
-Index: magics++-2.18.1/src/visualisers/Bar.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/Bar.cc	2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/Bar.cc	2012-10-31 15:44:17.000000000 +0000
-@@ -98,13 +98,13 @@
- 	
- 	vector<string>::iterator annotation = annotation_.begin();
- 	
--	for (CustomisedPointsList::const_iterator point = points.begin(); point != points.end(); ++point)
-+	for (CustomisedPointsList::const_iterator pt = points.begin(); pt != points.end(); ++pt)
- 	{
- 		
--		x = (**point)["x"];
--		next = ((point+1) != points.end() ) ? (**(point+1))["x"] : x;
--		bottom = (min_value_ == INT_MAX) ? (**point)["y_lower"]: min_value_;
--		top = (**point)["y_upper"];
-+		x = (**pt)["x"];
-+		next = ((pt+1) != points.end() ) ? (**(pt+1))["x"] : x;
-+		bottom = (min_value_ == INT_MAX) ? (**pt)["y_lower"]: min_value_;
-+		top = (**pt)["y_upper"];
- 		
- 		map<string,  Renderer>::iterator renderer = renderers_.find(lowerCase(bar_style_) );
- 
-Index: magics++-2.18.1/src/decoders/MapGenDecoder.cc
-===================================================================
---- magics++-2.18.1.orig/src/decoders/MapGenDecoder.cc	2012-10-15 12:23:36.000000000 +0100
-+++ magics++-2.18.1/src/decoders/MapGenDecoder.cc	2012-10-31 15:47:05.000000000 +0000
-@@ -73,11 +73,11 @@
-                 continue;
- 			if ( strncmp(line,"# -b", 4) == 0 ) 
- 			   if ( record_ < 0 ) {
--				   if ( this->empty() ) push_back(new PointsList());
-+				   if ( this->empty() ) this->push_back(new PointsList());
- 				   this->back()->push_back(new UserPoint(0,0,0, true));
- 			   }
- 			   else
--				   push_back(new PointsList());
-+				   this->push_back(new PointsList());
- 			else {
- 				sscanf(line, "%f %f", &lon, &lat);
- 				this->back()->push_back(new UserPoint(lon, lat, i++));
diff --git a/debian/patches/magics-config.patch b/debian/patches/magics-config.patch
deleted file mode 100644
index 257863e..0000000
--- a/debian/patches/magics-config.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-Description: Make magics-config inherit from pkg-config, for Multi-arch support.
-Author: Alastair McKinstry <mckinstry at debian.org>
-Bug-Origin: http://bugs.debian.org/674472
-Last-Updated: 2012-06-08
-Forwarded: no
-
-Index: magics++-2.18.1/magics-config.in
-===================================================================
---- magics++-2.18.1.orig/magics-config.in	2012-10-31 15:38:22.000000000 +0000
-+++ magics++-2.18.1/magics-config.in	2012-10-31 15:47:28.000000000 +0000
-@@ -2,17 +2,21 @@
- 
- prefix=@prefix@
- exec_prefix=@exec_prefix@
--libdir=@libdir@
-+libdir=`pkg-config --variable=libdir magics`
- includedir=@includedir@
--F77="@F77@"
--CC="@CC@"
--CXX="@CXX@"
--CXXFLAGS="@CXXFLAGS@" 
--AXX="@AXX@"
--SHLIB_EXT="@SHLIB_EXT@"
--FFLAGS="@FFLAGS@"
--CPPLIBS="@CPPLIBS@"
--py_dir="@PYTHON_SITE_PKG@"
-+F77=`pkg-config --variable=F77 magics`
-+CC=`pkg-config --variable=CC magics`
-+CXX=`pkg-config --variable=CXX magics`
-+CXXFLAGS=`pkg-config --variable=CXXFLAGS magics`
-+AXX=`pkg-config --variable=AXX magics`
-+SHLIB_EXT=`pkg-config --variable=SHLIB_EXT magics`
-+FFLAGS=`pkg-config --variable=FFLAGS magics`
-+CPPLIBS=`pkg-config --variable=CPPLIBS magics`
-+LDFLAGS=`pkg-config --variable=LDFLAGS magics`
-+FLIBS=`pkg-config --variable=FLIBS magics`
-+MAGICS_3RDPARTY_LIBS=`pkg-config --variable=MAGICS_3RDPARTY_LIBS magics`
-+MAGICS_3RDPARTY_INCLUDE=`pkg-config --variable=MAGICS_3RDPARTY_INCLUDE magics`
-+py_dir=`pkg-config --variable=py_dir magics`
- suffix=""
- 
- #
-@@ -230,7 +234,7 @@
- 	if test "$includedir" != "/usr/include" ; then
- 		my_cxxflags="-I${includedir}"
- 	fi
--	echo "${AXX} ${my_cxxflags} @MAGICS_3RDPARTY_INCLUDE@"
-+	echo "${AXX} ${my_cxxflags} ${MAGICS_3RDPARTY_INCLUDE}"
- fi
- 
- if test "$echo_libs" = "yes"; then
-@@ -240,7 +244,7 @@
- 		my_libs="${libdir}/libMagPlus.a"
- 	fi
- 
--	my_libs="${my_libs} @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ @FLIBS@"
-+	my_libs="${my_libs} ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} ${FLIBS}"
- 
- 	if test "$echo_clibs" = "yes"; then
- 		my_libs="${my_libs} $CPPLIBS"
-@@ -258,7 +262,7 @@
- 
- if test "$echo_static" = "yes"; then
- 	if test -f ${libdir}/libMagPlus.a ; then
--	  static="${precision} ${libdir}/libMagPlus.a -L${libdir} @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS"
-+	  static="${precision} ${libdir}/libMagPlus.a -L${libdir} ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS"
- 	  echo ${static}
- 	else
- 	  echo "magics-config: NO STATIC LIBRARY available"
-@@ -267,7 +271,7 @@
- 
- if test "$echo_shared" = "yes"; then
- 	if test -f ${libdir}/libMagPlus.${SHLIB_EXT} ; then
--	  shared="${precision} -L${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS"
-+	  shared="${precision} -L${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS"
- 	  echo ${shared}
- 	else
- 	  echo "magics-config: NO SHARED LIBRARY"
-@@ -275,7 +279,7 @@
- fi
- 
- if test "$echo_flibs" = "yes"; then
--	echo @FLIBS@
-+	echo ${FLIBS}
- fi
- 
- if test "$compile" = "yes"; then
-@@ -289,8 +293,8 @@
- 	if test ${name} != ${f77_file} ; then
- 	      out="-o $name "              ### avoid overriding source file
- 	fi
--	echo "$F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS"
--	$F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS
-+	echo "$F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS"
-+	$F77 ${out}$f77_file ${FFLAGS} ${precision} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS
- fi
- 
- if test "$compileC" = "yes"; then
-@@ -304,6 +308,6 @@
- 	if test ${name} != ${c_file} ; then
- 	      out="-o $name "              ### avoid overriding source file
- 	fi
--	echo "$CC ${out}$c_file ${CFLAGS} -L${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS @FLIBS@"
--	$CC ${out}$c_file ${CFLAGS} -I${includedir} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus @LDFLAGS@ @MAGICS_3RDPARTY_LIBS@ $CPPLIBS @FLIBS@
-+	echo "$CC ${out}$c_file ${CFLAGS} -L${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS ${FLIBS}"
-+	$CC ${out}$c_file ${CFLAGS} -I${includedir} -L${libdir} -Wl,-rpath,${libdir} -lMagPlus ${LDFLAGS} ${MAGICS_3RDPARTY_LIBS} $CPPLIBS ${FLIBS}
- fi
-Index: magics++-2.18.1/src/magics.pc.in
-===================================================================
---- magics++-2.18.1.orig/src/magics.pc.in	2012-10-15 12:23:36.000000000 +0100
-+++ magics++-2.18.1/src/magics.pc.in	2012-10-31 15:47:28.000000000 +0000
-@@ -2,6 +2,19 @@
- exec_prefix=@exec_prefix@
- libdir=@libdir@
- includedir=@includedir@
-+F77="@F77@"
-+CC="@CC@"
-+CXX="@CXX@"
-+CXXFLAGS="@CXXFLAGS@"
-+AXX="@AXX@"
-+SHLIB_EXT="@SHLIB_EXT@"
-+FFLAGS="@FFLAGS@"
-+CPPLIBS="@CPPLIBS@"
-+LDFLAGS="@LDFLAGS@"
-+FLIBS="@FLIBS@"
-+MAGICS_3RDPARTY_LIBS="@MAGICS_3RDPARTY_LIBS@"
-+MAGICS_3RDPARTY_INCLUDE="@MAGICS_3RDPARTY_INCLUDE@"
-+py_dir="@PYTHON_SITE_PKG@"
- 
- Name: Magics
- Description: Multi-platform meteorological graphics library
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index cc66b4c..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1,6 +0,0 @@
-dynamic_link.patch
-cve-2010-3393.patch
-terralib.patch
-enable_static.patch
-gcc-4.7.patch
-magics-config.patch
diff --git a/debian/patches/terralib.patch b/debian/patches/terralib.patch
deleted file mode 100644
index 1b1551f..0000000
--- a/debian/patches/terralib.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-Author: Alastair McKinstry <mckinstry at debian.org>
-Description: Add Debians libterralib, rather than built-in version
-Last-Updated: 2011-07-08
-Forwarded: not-needed
-
-Index: magics++-2.18.1/configure.ac
-===================================================================
---- magics++-2.18.1.orig/configure.ac	2012-10-31 15:38:08.000000000 +0000
-+++ magics++-2.18.1/configure.ac	2012-10-31 15:38:30.000000000 +0000
-@@ -990,7 +990,7 @@
- 
- 
- MAGICS_3RDPARTY_INCLUDE="$CPPFLAGS"
--MAGICS_3RDPARTY_LIBS="$LIBS $GRIBAPI_LIBS $MAGICS_3RDPARTY_LIBS $NETCDF_LIBS"
-+MAGICS_3RDPARTY_LIBS="$LIBS $GRIBAPI_LIBS $MAGICS_3RDPARTY_LIBS $NETCDF_LIBS -lterralib"
- LIBS="$LIBS $NETCDF_LIBS"
- 
- AC_SUBST(MAGICS_3RDPARTY_INCLUDE)
-@@ -1031,7 +1031,6 @@
- 		src/drivers/Makefile
- 		src/oda/Makefile
- 		src/visualisers/Makefile
--		src/terralib/Makefile
- 		src/MvObs/Makefile
- 		src/libTable/Makefile
- 		src/libMagWrapper/Makefile
-Index: magics++-2.18.1/src/visualisers/ImagePlotting.cc
-===================================================================
---- magics++-2.18.1.orig/src/visualisers/ImagePlotting.cc	2012-10-15 12:23:37.000000000 +0100
-+++ magics++-2.18.1/src/visualisers/ImagePlotting.cc	2012-10-31 15:38:30.000000000 +0000
-@@ -124,7 +124,8 @@
- 	parin.nlines_ = rdin.getRows();
- 	parin.resx_   = abs(rdin.getXResolution());
- 	parin.resy_   = abs(rdin.getYResolution());
--	parin.decName("MEM");
-+	//parin.decName("MEM");
-+        parin.decoderIdentifier_ = "MEM";
- 	
- 	parin.projection(&rdin.getProjection());
- 	UserPoint ll = rdin.getLowerLeftCorner();
-@@ -136,7 +137,8 @@
- 
- 	// Copy input image to the raster structure
- 	TeRaster rastin(parin);
--	rastin.params().decName("MEM");
-+	// rastin.params().decName("MEM");
-+        rastin.params().decoderIdentifier_ = "MEM";
- 	bool ok = rastin.init(parin);
- 	for (i = 0; i < parin.nlines_; i++)
- 		for (j = 0; j < parin.ncols_; j++)
-@@ -164,7 +166,8 @@
- 	double res = (maxX-minX)/double(nnx-1);
- 
- 	parout.boundingBoxResolution(minX,minY,maxX,maxY,res,res, TeBox::TeLOWERLEFT);
--	parout.decName("MEM");
-+	// parout.decName("MEM");
-+        parout.decoderIdentifier_ = "MEM";
- 	parout.nBands(1);
- 	parout.setDummy(0);
- 	parout.setDataType(TeUNSIGNEDSHORT); // see note 2 above
-@@ -172,7 +175,8 @@
- 
- 	// Initialise raster structure
- 	TeRaster rastout(parout);
--	rastout.params().decName("MEM");
-+	// rastout.params().decName("MEM");
-+        rastout.params().decoderIdentifier_ = "MEM";
- 	ok = rastout.init(parout);
- 
- 	// Reproject input data
-@@ -230,10 +234,12 @@
- 	UserPoint ur = rdin.getUpperRightCorner();
- 	parin.boundingBoxResolution(ll.x(),ll.y(),ur.x(),ur.y(), parin.resx_, parin.resy_);
- 	parin.nBands(1);
--	parin.setDataType(TeUNSIGNEDSHORT);
-+	// parin.setDataType(TeUNSIGNEDSHORT);
- 	//parin.compressionType_ = TeNoCompression;
-+         parin.dataType_[0] = TeUNSIGNEDSHORT;
-     parin.setCompressionMode(TeRasterParams::TeNoCompression);
--	parin.decName("MEM");
-+	// parin.decName("MEM");
-+        parin.decoderIdentifier_ = "MEM";
- 
- 	// Copy input image to the raster structure
- 	TeRaster rastin(parin);
-@@ -247,7 +253,8 @@
- 	TeRasterParams parout;
- 	TeProjection& projout = const_cast<Transformation * >(&transformation)->getProjection();
- 	parout.projection(&projout);
--	parout.decName("MEM");
-+	// parout.decName("MEM");
-+        parout.decoderIdentifier_ = "MEM";
- 
- 	double minX = transformation.getMinPCX();  
- 	double maxX = transformation.getMaxPCX();  
-Index: magics++-2.18.1/src/Makefile.am
-===================================================================
---- magics++-2.18.1.orig/src/Makefile.am	2012-10-15 12:23:34.000000000 +0100
-+++ magics++-2.18.1/src/Makefile.am	2012-10-31 15:38:30.000000000 +0000
-@@ -8,8 +8,8 @@
- endif
- 
- #if MAGICS_TERRALIB
--MAG_TERRALIB_DIR 	= terralib
--terralib_lib		= terralib/libterralib.la
-+MAG_TERRALIB_DIR 	= 
-+terralib_lib		= 
- #endif
- 
- if MAGICS_JSON
-@@ -163,16 +163,8 @@
- EXTRA_DIST	= 	boost
- 
- if MAGICS_RASTER
--sharettfdir		= $(datadir)/magics/ttf
--sharettf_DATA		= $(top_srcdir)/share/magics/ttf/DejaVuSans-BoldOblique.ttf \
--			$(top_srcdir)/share/magics/ttf/DejaVuSans.ttf \
--			$(top_srcdir)/share/magics/ttf/DejaVuSerif-Oblique.ttf \
--			$(top_srcdir)/share/magics/ttf/DejaVuSans-Bold.ttf \
--			$(top_srcdir)/share/magics/ttf/DejaVuSerif-BoldOblique.ttf \
--			$(top_srcdir)/share/magics/ttf/DejaVuSerif.ttf \
--			$(top_srcdir)/share/magics/ttf/DejaVuSans-Oblique.ttf \
--			$(top_srcdir)/share/magics/ttf/DejaVuSerif-Bold.ttf \
--			$(top_srcdir)/share/magics/ttf/LICENSE-dejavu-ttf-2.15
-+sharettfdir		= 
-+sharettf_DATA		= 
- endif
- 
- shareefidir		= $(datadir)/magics/efi
-Index: magics++-2.18.1/configure
-===================================================================
---- magics++-2.18.1.orig/configure	2012-10-15 12:24:22.000000000 +0100
-+++ magics++-2.18.1/configure	2012-10-31 15:38:30.000000000 +0000
-@@ -22843,7 +22843,6 @@
-     "src/drivers/Makefile") CONFIG_FILES="$CONFIG_FILES src/drivers/Makefile" ;;
-     "src/oda/Makefile") CONFIG_FILES="$CONFIG_FILES src/oda/Makefile" ;;
-     "src/visualisers/Makefile") CONFIG_FILES="$CONFIG_FILES src/visualisers/Makefile" ;;
--    "src/terralib/Makefile") CONFIG_FILES="$CONFIG_FILES src/terralib/Makefile" ;;
-     "src/MvObs/Makefile") CONFIG_FILES="$CONFIG_FILES src/MvObs/Makefile" ;;
-     "src/libTable/Makefile") CONFIG_FILES="$CONFIG_FILES src/libTable/Makefile" ;;
-     "src/libMagWrapper/Makefile") CONFIG_FILES="$CONFIG_FILES src/libMagWrapper/Makefile" ;;
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index bfd822e..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/make -f
-
-# To enable all, uncomment following line
-DEB_BUILD_MAINT_OPTIONS:= hardening=+allx
-DEB_CFLAGS_MAINT_APPEND:= -Wall -pedantic
-export DEB_BUILD_MAINT_OPTIONS
-export DEB_CFLAGS_MAINT_APPEND
-
-# Uncomment this to turn on verbose mode.
-export DH_VERBOSE=1
-
-%:
-	dh $@  --with python2,python3,autoreconf
-
-CFLAGS += -fPIC
-
-DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
-
-# --enable-opengl can't be used as lesstif not supported - missing Motif functionality
-
-override_dh_auto_clean:
-	find . -type l -exec rm {} \;
-	find . \( -name '*.pyc' -o -name '*.o' -o -name '*.a' \)  -exec rm {} \;
-	find . -name '.libs' -exec rm -rf {} \;  || echo ".libs deleted already."
-	find test \( -name '*.ps' -o -name '*.pdf' -o -name '*.svg' -o -name '*.png' \
-	       -o -name '*.kmz' \)  -exec rm  {} \;
-	rm -f config.log
-	rm -rf share/magics/ttf src/terralib
-	$(MAKE) -k distclean || echo "Already distcleaned"
-
-override_dh_autoreconf:
-	# remove out of date files
-	rm -f conf/config.guess conf/config.sub
-	libtoolize -c -f
-	dh_autoreconf --as-needed
-
-override_dh_auto_configure:
-	# link for font for tesing.
-	mkdir -p share/fonts/truetype/ttf-dejavu/
-	ln -sf /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf share/fonts/truetype/ttf-dejavu/
-	# Link terralib
-	[ -e src/terralib ] || ln -sf  /usr/include/terralib src/terralib
-	# Now build. LDFLAGS is a nasty hack past libtool breakage in install, where it fails
-	# to find libraries _it_ created. And it makes stuff in the install step. bah.
-	# autoreconf -if
-	dh_auto_configure -- \
-		--enable-bufr --enable-static --enable-cairo --with-emos-libraries=/usr/lib \
-		--enable-python \
-		LDFLAGS="$(LDFLAGS) -L$(shell pwd)/src/.libs -Wl,--as-needed"  LIBS=" -lX11 -lpng12 -lz" \
-		MAGPLUS_HOME=$(shell pwd)
-override_dh_auto_test check:
-	echo "Tests disabled; see README-testfailures.txt for details"
-	# (ulimit -s 8192; export PYTHONPATH=$(shell pwd)/swig ; export MAGPLUS_HOME=$(shell pwd) ; $(MAKE) check )
-	
-override_dh_auto_install:
-	#chrpath -d swig/*.so
-	dh_auto_install
-	# call configure to rebuild swig/Makefile with correct python version.
-	# (cd swig/Magics && ln -sf /usr/share/pyshared/instant/swig/numpy.i )
-	for pyvers in $(shell pyversions -r) ; do \
-                ver=`echo $$pyvers | sed -e 's/python//g' ` ; \
-		dh_auto_configure -- \
-			--enable-bufr --enable-static --enable-cairo --with-emos-libraries=/usr/lib \
-			--enable-python PYTHON=$$pyvers PYTHON_VERSION=$$ver \
-			LDFLAGS="$(LDFLAGS) -L$(shell pwd)/src/.libs -Wl,--as-needed" ; \
-		$(MAKE) -C python/Magics clean install PYTHON_INCLUDE_DIR=/usr/include/$$pyvers \
-			DESTDIR=$(CURDIR)/debian/python-magics++ \
-			MAGPLUS_HOME=$(shell pwd) ; done 
-	$(MAKE) -C tools prefix=$(shell pwd)/debian/tmp/usr install
-	cp tools/mapgen_clip debian/tmp/usr/bin
-	find debian -name '*.la' -delete
-	find debian -name '_Magics.so.0' -delete  # Bogus symlinks
-	# Hack. dh_python2 doesn't know multarch yet.
-	mv debian/python-magics++/usr/lib/${DEB_HOST_MULTIARCH}/p* debian/python-magics++/usr/lib
-	rmdir debian/python-magics++/usr/lib/${DEB_HOST_MULTIARCH}
-	dh_python2 
-	for pyvers in $(shell pyversions -r) ; do \
-    		dh_python2 /usr/lib/$$pyvers/site-packages/Magics ; \
-	done
-	dh_numpy -p python-magics++
-	# remove fonts that are present in dejavu-ttf
-	rm -rf debian/libmagics++-data/usr/share/magics/ttf
-	find debian -name '*.so' -exec chrpath -d {} \;
-	# Deal with links for Multi-Arch:
-	dh_link -p libmagics++-dev /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3.0.0    /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so
-	dh_link -p libmagplus3     /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3.0.0    /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3
-	mkdir -p debian/libmagics++-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig
-	find debian -name '*.la' -delete 
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"
diff --git a/python/Magics/Magics_interface.cc b/python/Magics/Magics_interface.cc
index eb23e9a..2ac5146 100755
--- a/python/Magics/Magics_interface.cc
+++ b/python/Magics/Magics_interface.cc
@@ -37,6 +37,9 @@ void cont() {
 void minput() {
   mag_input();
 }
+void mtable() {
+  mag_table();
+}
 void obs() {
   mag_obs();
 }
diff --git a/python/Magics/Makefile.in b/python/Magics/Makefile.in
index 4972b3e..4cff46d 100644
--- a/python/Magics/Makefile.in
+++ b/python/Magics/Makefile.in
@@ -117,6 +117,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -201,6 +202,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/python/Magics/macro.py b/python/Magics/macro.py
index ff3add7..9483039 100644
--- a/python/Magics/macro.py
+++ b/python/Magics/macro.py
@@ -33,6 +33,8 @@ actions={
 	"maxis": "paxis",
 	"paxis": "paxis",
 	"minput": "pinput",
+	"mtable": "ptable",
+	"ptable": "ptable",
 	"pinput": "pinput"
 	}
 
@@ -40,10 +42,14 @@ actions={
 
 
 class Action(object):
-	def __init__(self, verb, action, args):
+	def __init__(self, verb, action, html, args):
 		self.verb = verb
 		self.action = action
 		self.args = args
+		if ( html == "") :
+			self.html = verb 
+		else :			
+			self.html = "<a href=/wiki/display/MAGP/%s target='_blank'>%s</a>" % (html, verb)  
 
 	def __repr__(self):
 		x = ""
@@ -59,7 +65,7 @@ class Action(object):
 
 	def tohtml(self, file):
 		sep=""
-		val="%s("%self.verb
+		val="%s("%self.html
 
 		for key in self.args.keys():
 			if isinstance(self.args[key], str):
@@ -75,25 +81,35 @@ class Action(object):
 				if isinstance (self.args[key][0], str):
 				   vval = ""
 				   vsep = ""
-				   for v in self.args[key]:
-				   		vval += vsep + self.quote(v)
-				   		vsep = ",\n\t\t\t"
+				   if (len(self.args[key]) < 5 ):
+			   			for v in self.args[key]:
+			   				vval += vsep + self.quote(v)
+			   				vsep = ", "
+				   else :
+						vval = self.quote(self.args[key][0]) + ", " + self.quote(self.args[key][1]) + ",...," + self.quote(self.args[key][-2]) +  ", " + self.quote(self.args[key][-1]) 
 				   vval += ""
 				   val+= '%s%s = [%s]'%(sep, key, vval)
 				elif isinstance(self.args[key][0], int):
 				   vval = ""
 				   vsep = ""
-				   for v in self.args[key]:
-				   		vval += vsep + ("%d"%v)
-				   		vsep = ", "
+				   if (len(self.args[key]) < 5 ):
+			   			for v in self.args[key]:
+			   				vval += vsep + ("%df"%v)
+			   				vsep = ", "
+				   else :
+							vval = ("%d"%self.args[key][0]) + ", " + ("%d"%self.args[key][1]) + ",...," + ("%d"%self.args[key][-2]) +  ", " + ("%d"%self.args[key][-1]) 
 				   vval += ""
 				   val+= '%s%s = %s'%(sep, key, vval)
 				elif isinstance(self.args[key][0], float):
 				   vval = ""
 				   vsep = ""
-				   for v in self.args[key]:
-				   		vval += vsep + ("%0.2f"%v)
-				   		vsep = ", \n\t\t\t"
+				   if (len(self.args[key]) < 5 ):
+			   			for v in self.args[key]:
+			   				vval += vsep + ("%0.2f"%v)
+			   				vsep = ", "
+				   else :
+						vval = ("%0.2f"%self.args[key][0]) + ", " + ("%0.2f"%self.args[key][1]) + ",...," + ("%0.2f"%self.args[key][-2]) +  ", " + ("%0.2f"%self.args[key][-1]) 
+				
 				   vval += ""
 				   val+= '%s%s = [%s]'%(sep, key, vval)
 			elif isinstance(self.args[key], numpy.ndarray) :
@@ -110,9 +126,12 @@ class Action(object):
 					else :
 				   		vval = ""
 				   		vsep = ""
-				   		for v in self.args[key]:
-				   			vval += vsep + ("%0.2f"%v)
-				   			vsep = ", "
+						if (len(self.args[key]) < 5 ):
+				   			for v in self.args[key]:
+				   				vval += vsep + ("%0.2f"%v)
+				   				vsep = ", "
+						else :
+							vval = ("%0.2f"%self.args[key][0]) + ", " + ("%0.2f"%self.args[key][1]) + ",...," + ("%0.2f"%self.args[key][-2]) +  ", " + ("%0.2f"%self.args[key][-1]) 
 				   		vval += ""
 				   		val+= '%s%s = [%s]'%(sep, key, vval)
 				else :
@@ -293,6 +312,8 @@ class Action(object):
 
 		if self.action != None :
 			if self.action != Magics.new_page :
+				if self.action == Magics.legend :
+					Magics.setc("legend", "on")
 				self.action()
 				if self.action != Magics.obs :
 					for key in self.args.keys():
@@ -300,61 +321,62 @@ class Action(object):
 			else:
 				self.action("page")
 
-def make_action(verb, action):
+def make_action(verb, action, html=""):
 	def f(_m = None,**kw):
 		args = {}
 		if _m is not None: 
 			args.update(_m)
 		args.update(kw)
-		return Action(verb, action, args)
+		return Action(verb, action, html, args)
 	return f
 
-mcoast = make_action("mcoast", Magics.coast)
+mcoast = make_action("mcoast", Magics.coast, "Coastlines")
 pcoast = make_action("pcoast", Magics.coast)
-maxis = make_action("maxis", Magics.axis)
+maxis = make_action("maxis", Magics.axis, "Axis")
 paxis = make_action("paxis", Magics.axis)
-mcont = make_action("mcont", Magics.cont)
+mcont = make_action("mcont", Magics.cont, "Contouring")
 pcont = make_action("pcont", Magics.cont)
-msymb = make_action("msymb", Magics.symb)
+msymb = make_action("msymb", Magics.symb, "Symbol")
 psymb = make_action("psymb", Magics.symb)
 pimport = make_action("pimport", Magics.mimport)
 mimport = make_action("mimport", Magics.mimport)
 mtaylor = make_action("mtaylor", Magics.taylor)
 mgeo = make_action("mgeo", Magics.geo)
 pgeo = make_action("pgeo", Magics.geo)
-pgrib = make_action("pgrib", Magics.grib)
-mgrib = make_action("mgrib", Magics.grib)
+pgrib = make_action("pgrib", Magics.grib, "Grib+Input")
+mgrib = make_action("mgrib", Magics.grib, "Grib+Input")
 pmapgen = make_action("pmapgen", Magics.mapgen)
 mmapgen = make_action("mmapgen", Magics.mapgen)
 pnetcdf = make_action("pnetcdf", Magics.netcdf)
 mnetcdf = make_action("mnetcdf", Magics.netcdf)
-odb_geopoints = make_action("odb_geopoints", Magics.odb)
-odb_geovectors = make_action("odb_geovectors", Magics.odb)
-odb_xypoints = make_action("odb_xypoints", Magics.odb)
-odb_xyvectors = make_action("odb_xyvectors", Magics.odb)
-pmap = make_action("pmap", None)
-mmap = make_action("mmap", None)
-plegend = make_action("plegend", Magics.legend)
-mlegend = make_action("mlegend", Magics.legend)
+odb_geopoints = make_action("odb_geopoints", Magics.odb, "Odbviewer")
+odb_geovectors = make_action("odb_geovectors", Magics.odb,"Odbviewer" )
+odb_xypoints = make_action("odb_xypoints", Magics.odb, "Odbviewer")
+odb_xyvectors = make_action("odb_xyvectors", Magics.odb, "Odbviewer")
+pmap = make_action("pmap", None, "Subpage")
+mmap = make_action("mmap", None, "Subpage")
+plegend = make_action("plegend", Magics.legend, "Legend")
+mlegend = make_action("mlegend", Magics.legend, "Legend")
 ptext = make_action("mtext", Magics.text)
-mtext = make_action("ptext", Magics.text)
-output = make_action("output", None)
-pwind = make_action("pwind", Magics.wind)
-mwind = make_action("mwind", Magics.wind)
+mtext = make_action("mtext", Magics.text)
+output = make_action("output", None, "PNG Output")
+pwind = make_action("pwind", Magics.wind, "Wind+Plotting")
+mwind = make_action("mwind", Magics.wind, "Wind+Plotting")
 pline = make_action("pline", Magics.line)
 mline = make_action("mline", Magics.line)
-pgraph = make_action("pgraph", Magics.graph)
-mgraph = make_action("mgraph", Magics.graph)
+pgraph = make_action("pgraph", Magics.graph, "Graph+Plotting")
+mgraph = make_action("mgraph", Magics.graph, "Graph+Plotting")
 pboxplot = make_action("pboxplot", Magics.boxplot)
 mboxplot = make_action("mboxplot", Magics.boxplot)
 pobs = make_action("pobs", Magics.obs)
 mobs = make_action("mobs", Magics.obs)
 page = make_action("page", Magics.new_page)
 pinput = make_action("pinput", Magics.minput)
-minput = make_action("minput", Magics.minput)
+minput = make_action("minput", Magics.minput, "Input Data")
+mtable = make_action("mtable", Magics.mtable, "CSV Table Decoder")
 
 
-mwrepjson = make_action("mwrepjson", Magics.wrepjson)
+mwrepjson = make_action("mwrepjson", Magics.wrepjson, "WrepJSon")
 mepscloud = make_action("mepscloud", Magics.epscloud)
 mepsbar = make_action("mepsbar", Magics.epsbar)
 mepswind = make_action("mepswind", Magics.epswind)
diff --git a/python/Magics/setup.py.in b/python/Magics/setup.py.in
index 8f68404..f8cc128 100644
--- a/python/Magics/setup.py.in
+++ b/python/Magics/setup.py.in
@@ -16,6 +16,7 @@ if "@odb@" != "no":
 if "@bufr@" != "no":
     if "@EMOS_LIB_NAME@":
        lib_list.append("@EMOS_LIB_NAME@")
+       libpath_list.append("@EMOS_LIB_PATH@")
     if "@FLIB@":
        flibs=['@FLIB@']
        lib_list += flibs
diff --git a/rpms/Makefile.in b/rpms/Makefile.in
index b453921..c4adcfa 100644
--- a/rpms/Makefile.in
+++ b/rpms/Makefile.in
@@ -91,6 +91,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -175,6 +176,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/MagicsSingle.cc b/src/MagicsSingle.cc
index db48c31..9eb2f51 100644
--- a/src/MagicsSingle.cc
+++ b/src/MagicsSingle.cc
@@ -23,7 +23,8 @@
 
 */
 #include <iostream>
-
+#include <math.h>
+#include <stdio.h>
 extern "C"
 {
 #include <magics_api.h>
@@ -32,7 +33,17 @@ extern "C"
 void psetr_(char* name, float* value, int length)
 {
 	std::string n(name, length);
-	mag_setr(n.c_str(), *value);
+	double dval = *value;
+	// Here we try to improve the conversion to double for small numbers.
+
+	if ( *value < 1.0 && *value > -1.0 ) {
+		int val = *value * 10000000;
+		dval = val/10000000.;
+	}
+
+
+
+	mag_setr(n.c_str(), dval);
 }
 
 void pset1r_(char* name, float* data, int* dim, int length)
diff --git a/src/Makefile.in b/src/Makefile.in
index 22d1aae..6bf8965 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -236,6 +236,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -320,6 +321,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/MvObs/Makefile.in b/src/MvObs/Makefile.in
index 70a35b6..20a092e 100644
--- a/src/MvObs/Makefile.in
+++ b/src/MvObs/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/basic/BasicGraphicsObject.cc b/src/basic/BasicGraphicsObject.cc
index dd4499d..d535e66 100644
--- a/src/basic/BasicGraphicsObject.cc
+++ b/src/basic/BasicGraphicsObject.cc
@@ -90,7 +90,14 @@ void BasicGraphicsObjectContainer::clear()
 	}
 	objects_.clear();
 }
-
+void BasicGraphicsObjectContainer::release()
+{
+	MagLog::debug() << "CLEAR CONTAINER" << objects_.size() << endl;
+	for (vector<BasicGraphicsObject*>::iterator object = objects_.begin(); object!= objects_.end(); ++object) {
+		(*object)->release();
+	}
+	objects_.clear();
+}
 void BasicGraphicsObject::check()
 {
 	if (parent_)
diff --git a/src/basic/BasicGraphicsObject.h b/src/basic/BasicGraphicsObject.h
index be755b8..8f1357b 100644
--- a/src/basic/BasicGraphicsObject.h
+++ b/src/basic/BasicGraphicsObject.h
@@ -65,6 +65,8 @@ public:
 	void makeBrother(const BasicGraphicsObject& brother)
 	{ parent_ = brother.parent_; }
 
+	virtual void release() {}
+
 	bool isOrphan() { return parent_== 0; } 
 	void orphan() {	parent_ = 0; }
 
@@ -128,6 +130,7 @@ public:
 	
 	void clear();
 	bool buildTree(const Layout&,  unsigned int, const BaseDriver&) const;
+	void release();
 	void remove(BasicGraphicsObject* object) {
 		std::remove(objects_.begin(), objects_.end(), object);
 
diff --git a/src/basic/FortranMagics.cc b/src/basic/FortranMagics.cc
index 1fa5a46..a820fdb 100644
--- a/src/basic/FortranMagics.cc
+++ b/src/basic/FortranMagics.cc
@@ -220,6 +220,7 @@ void FortranMagics::subpage()
 {
 	axisContainer_ = new FortranViewNode();	
 
+	axisContainer_->push_back(new MetaDataVisitor());
 	top()->push_back(axisContainer_);
 	axisContainer_->getReady();
 	push(axisContainer_);
@@ -502,6 +503,7 @@ void FortranMagics::dispatch()
 	if ( !root_ )  // Nothing has been done so far!
 		return;
 	drivers_->dispatch(root_->visualise());
+	MetaDataVisitor::collect();
 	root_->release();
 }
 
@@ -628,6 +630,23 @@ void FortranMagics::pinput()
 	}
 
 }
+#include "TableDecoder.h"
+void FortranMagics::ptable()
+{
+
+	actions();
+	if (geographical())
+	{
+		geoaction_ = new VisualAction();
+		geoaction_->data(new TableDecoder());
+		top()->push_back(geoaction_);
+	}
+	else {
+		xyaction_ = new VisualAction();
+		xyaction_->data(new TableDecoder());
+		top()->push_back(xyaction_);
+	}
+}
 
 #ifdef MAGICS_ODB
 #include "OdaDecoder.h"
@@ -1025,10 +1044,27 @@ void FortranMagics::pgraph()
 {
 	actions();
 
+
+
+
 	GraphPlotting* graph = new GraphPlotting();
+	if (geographical() ) {
+			if ( !geoaction_ ) {
+				geoaction_ = new VisualAction();
+						top()->push_back(geoaction_);
+						XYList* input = new XYList();
+						geoaction_->data(input);
+						MagLog::dev() << *input << "\n";
+			}
+			geoaction_->visdef(graph);
+			return;
+		}
+
+
 	// do we need a new Action?
 	// we check the previous one!
 	// if it looks ok we create a new one
+
 	if ( ( xyaction_ && xyaction_->isValid() ) || !xyaction_ ) {
 		xyaction_ = new VisualAction();
 		top()->push_back(xyaction_);
diff --git a/src/basic/FortranMagics.h b/src/basic/FortranMagics.h
index 4cb9035..ea0c446 100644
--- a/src/basic/FortranMagics.h
+++ b/src/basic/FortranMagics.h
@@ -65,6 +65,7 @@ public:
 	void pnetcdf();
 	void pgeo();
 	void pinput();
+	void ptable();
 	void pcont();
 	void ptext();
 	void ptest();
diff --git a/src/basic/Layer.cc b/src/basic/Layer.cc
index 6e7496a..eb0843a 100644
--- a/src/basic/Layer.cc
+++ b/src/basic/Layer.cc
@@ -245,10 +245,15 @@ void SingleLayer::execute(const BaseDriver& driver) const
 
 	assert(objects_);
 	objects_->redisplay(driver);
-	const_cast<SingleLayer*>(this)->release();
-	const_cast<SingleLayer*>(this)->objects_->clear();
+
+}
+void SingleLayer::release()
+{
+	Layer::release();
+	objects_->clear();
 }
 
+
 void SingleLayer::update(const Layout& parent)
 {
 	assert(objects_);
diff --git a/src/basic/Layer.h b/src/basic/Layer.h
index 2b0880d..d478ae2 100644
--- a/src/basic/Layer.h
+++ b/src/basic/Layer.h
@@ -180,6 +180,8 @@ public:
 	Layer* baseLayer();
 	LevelDescription& dataLevel() const;
 	DateDescription& timeStamp() const;
+	void release();
+
 
   protected:
 	mutable Layout* objects_;
diff --git a/src/basic/LegendVisitor.cc b/src/basic/LegendVisitor.cc
index 78d1a55..804d498 100644
--- a/src/basic/LegendVisitor.cc
+++ b/src/basic/LegendVisitor.cc
@@ -115,6 +115,16 @@ PaperPoint LegendEntry::leftTextBox(const PaperPoint& middle)
 	MagLog::dev() << "LegendEntry::leftTextBox" << point << endl;
 	return point;
 }
+PaperPoint ArrowEntry::leftTextBox(const PaperPoint& middle)
+{
+	// The box is going from x-1 to x+1
+	// The width of the Symbol box is 100-width;
+
+	PaperPoint point(middle);
+	point.x_ = (middle.x_-0.8);
+	point.y_ -= 0.3;
+	return point;
+}
 double LegendEntry::computeWidth(double width)
 {
 	return ((100-width_)/50)*width;
@@ -228,18 +238,19 @@ void LegendVisitor::build()
 			}
 			else
 				text = (this->*composition->second)(automatic, user);
-
+			if ( !lines_.empty() ) {
+						++label;
+						if (label == lines_.end()) --label;
+					}
 		}
 
 		legend->setFont(font);
 		legend->setText(text);
 		legend->setAngle((orientation_/180.)*3.14);
 		(*legend).setVerticalAlign(orientation_ ? MBOTTOM : MHALF);
-		if ( ! lines_.empty() ) {
-			++label;		
-			if (label == lines_.end()) --label;
-		}
+
 		if (text=="ignore") continue;
+
 	    (magCompare(direction_, "column") ) ? 
 			(*method_).column(**entry, position->first, position->second, *legend, *legend_) :
 			(*method_).row(**entry, position->first, position->second, *legend, *legend_);
@@ -453,13 +464,20 @@ void ArrowEntry::set(const PaperPoint& point, BasicGraphicsObjectContainer& lege
 }
 void ArrowEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
 {
-
-	set(point, legend);
+	PaperPoint pos(centreSymbolBox(point));
+	double width = computeWidth(0.8)/2;
+	pos.x_ += (width/2);
 	Text* text = new Text();
 	text->addText(label_, font_);
-	text->push_back(leftTextBox(point));
-	text->setJustification(MLEFT);
+	text->push_back(pos);
 	legend.push_back(text);
+
+
+	pos.y_ += 0.2;
+	pos.x_ -= (width);
+
+	arrow_->push_back(ArrowPoint(arrow_->getScale(), 0, pos));
+	legend.push_back(arrow_);
 }
 void ArrowEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
 {
diff --git a/src/basic/LegendVisitor.h b/src/basic/LegendVisitor.h
index b3e3192..ecca65a 100644
--- a/src/basic/LegendVisitor.h
+++ b/src/basic/LegendVisitor.h
@@ -92,7 +92,7 @@ public:
 	
 	void width(double width) { width_ = width; }
 	PaperPoint centreSymbolBox(const PaperPoint&);
-	PaperPoint leftTextBox(const PaperPoint&);
+	virtual PaperPoint leftTextBox(const PaperPoint&);
 
 	double computeWidth(double);
 
@@ -252,6 +252,7 @@ public:
 	virtual void rowBox(const PaperPoint&, BasicGraphicsObjectContainer&);
 	virtual void columnBox(const PaperPoint&, BasicGraphicsObjectContainer&);
 	bool needContinuousText() { return false;  }
+	PaperPoint leftTextBox(const PaperPoint&);
 protected:
 	Arrow*  arrow_;
 };
diff --git a/src/basic/LegendVisitorAttributes.h b/src/basic/LegendVisitorAttributes.h
index dc59340..42e9e8a 100644
--- a/src/basic/LegendVisitorAttributes.h
+++ b/src/basic/LegendVisitorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/basic/MagnifierVisitorAttributes.h b/src/basic/MagnifierVisitorAttributes.h
index eab538d..5e9289c 100644
--- a/src/basic/MagnifierVisitorAttributes.h
+++ b/src/basic/MagnifierVisitorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:27 2013
 */
    
 
diff --git a/src/basic/Makefile.in b/src/basic/Makefile.in
index c9b3958..6ae1b00 100644
--- a/src/basic/Makefile.in
+++ b/src/basic/Makefile.in
@@ -184,6 +184,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -268,6 +269,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/basic/MultiVisdef.cc b/src/basic/MultiVisdef.cc
index ed59fbe..c91eb86 100644
--- a/src/basic/MultiVisdef.cc
+++ b/src/basic/MultiVisdef.cc
@@ -42,6 +42,20 @@ void MultiVisdef::operator()(Data& data, BasicGraphicsObjectContainer& out)
 
 }
 
+bool MultiVisdef::needLegend()
+{
+
+
+	for (vector<Visdef*>::iterator visdef = one_d_.begin(); visdef != one_d_.end(); ++visdef)
+		if ( (*visdef)->needLegend() )
+			return true;
+	for (vector<Visdef*>::iterator visdef = two_d_.begin(); visdef != two_d_.end(); ++visdef)
+		if ( (*visdef)->needLegend() )
+			return true;
+	return false;
+
+}
+
 void MultiVisdef::visit(LegendVisitor& legend)
 {
 
diff --git a/src/basic/MultiVisdef.h b/src/basic/MultiVisdef.h
index f135942..9f37c1a 100644
--- a/src/basic/MultiVisdef.h
+++ b/src/basic/MultiVisdef.h
@@ -35,6 +35,7 @@ public:
 	    virtual void visit(Transformation&, Data&);
 	    virtual void visit(Layer& layer);
 	    virtual void beanInfo(IntervalMap<Colour>&);
+	    bool needLegend();
 
 protected:
      //! Method to print string about this class on to a stream of type ostream (virtual).
diff --git a/src/basic/TagHandler.cc b/src/basic/TagHandler.cc
index 541fb67..d1ec133 100644
--- a/src/basic/TagHandler.cc
+++ b/src/basic/TagHandler.cc
@@ -97,6 +97,7 @@ TagConverter::TagConverter(TagHandler& owner) : owner_(owner), text_(0) {
 		map_["data"] =  &TagConverter::data;
 		map_["grib_info"] =  &TagConverter::grib;
 		map_["json_info"] =  &TagConverter::json;
+		map_["spot_info"] =  &TagConverter::spot;
 		map_["netcdf_info"] =  &TagConverter::netcdf;
 		map_["magics_title"] =  &TagConverter::magics;
 		map_["base_date"] =  &TagConverter::base_date;
@@ -155,6 +156,19 @@ void TagConverter::grib(const XmlNode& node) {
 	elevation_ = top().elevation();
 }
 
+void TagConverter::spot(const XmlNode& node) {
+
+	push();
+	const map<string, string>& attributes = node.attributes();
+	if (attributes.find("key") != attributes.end() ) {
+		string result = owner_.get("spot", attributes.find("key")->second);
+		check(owner_.get("spot", attributes.find("key")->second));
+	}
+	node.visit(*this);
+	pop();
+}
+
+
 void TagConverter::json(const XmlNode& node) {
 
 	push();
@@ -352,6 +366,7 @@ bool TagConverter::staticTag(const string& line)
 		keys.push_back("grib_info");
 		keys.push_back("netcdf_info");
 		keys.push_back("json_info");
+		keys.push_back("spot_info");
 		keys.push_back("magics_title");
 	}
 	for ( vector<string> ::iterator key = keys.begin(); key !=keys. end(); ++key)  {
diff --git a/src/basic/TagHandler.h b/src/basic/TagHandler.h
index 575c2d7..bba47fa 100644
--- a/src/basic/TagHandler.h
+++ b/src/basic/TagHandler.h
@@ -67,6 +67,7 @@ public:
 	
 	void grib(const XmlNode&);
 	void netcdf(const XmlNode&);
+	void spot(const XmlNode&);
 	void pass(const XmlNode&);
 	
 	void font(const MagFont& font) { font_ = font; }
diff --git a/src/basic/WrepRootNodeAttributes.h b/src/basic/WrepRootNodeAttributes.h
index e7a6861..1a23158 100644
--- a/src/basic/WrepRootNodeAttributes.h
+++ b/src/basic/WrepRootNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/basic/XmlBasicNodeAttributes.h b/src/basic/XmlBasicNodeAttributes.h
index e9e9d76..2c8789a 100644
--- a/src/basic/XmlBasicNodeAttributes.h
+++ b/src/basic/XmlBasicNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/basic/XmlRootNodeAttributes.h b/src/basic/XmlRootNodeAttributes.h
index 7e2b25e..73ca674 100644
--- a/src/basic/XmlRootNodeAttributes.h
+++ b/src/basic/XmlRootNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/basic/XmlSceneNodeAttributes.h b/src/basic/XmlSceneNodeAttributes.h
index 5c83121..70e0e6b 100644
--- a/src/basic/XmlSceneNodeAttributes.h
+++ b/src/basic/XmlSceneNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/basic/XmlViewNodeAttributes.h b/src/basic/XmlViewNodeAttributes.h
index 68aec76..a50cf78 100644
--- a/src/basic/XmlViewNodeAttributes.h
+++ b/src/basic/XmlViewNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/common/CartesianTransformation.h b/src/common/CartesianTransformation.h
index a207465..4c5d6dd 100644
--- a/src/common/CartesianTransformation.h
+++ b/src/common/CartesianTransformation.h
@@ -56,6 +56,7 @@ public:
 	virtual double y(double y) const { return (*y_)(y); }
 	virtual double rx(double x) const { return (*x_).revert(x); }
 	virtual double ry(double y) const { return (*y_).revert(y); }
+	virtual void fast_reproject(double& x, double& y) const { x = (*x_)(x); y = (*y_)(y);  }
 	
 	virtual PaperPoint operator()(const UserPoint& xy) const 
                  { return PaperPoint((*x_)(xy.x()), (*y_)(xy.y()),  xy.value()); }
diff --git a/src/common/ColourTableDefinitionCompute.cc b/src/common/ColourTableDefinitionCompute.cc
index b8b0b04..1eb2291 100644
--- a/src/common/ColourTableDefinitionCompute.cc
+++ b/src/common/ColourTableDefinitionCompute.cc
@@ -88,14 +88,10 @@ void ColourTableDefinitionCompute::set(ColourTable& table, int nb)
 	MagLog::dev() << "nb interval-->" << nb << endl;
     Hsl hmin = minColour_.hsl();
     Hsl hmax = maxColour_.hsl();
-/*    
-    table.push_back(Colour("none"));
-    nb--;
-    if ( nb < 2) {
-    	return;
-
-    }
-*/
+    if (nb == 1) {
+       	table.push_back(minColour_);
+       	return;
+       }
     if (nb == 2) {
     	table.push_back(minColour_);
     	return;
@@ -106,31 +102,8 @@ void ColourTableDefinitionCompute::set(ColourTable& table, int nb)
        	return;
        }
     
-/*
-    
-    if ( hmax.hue_ == hmin.hue_ && hmax.light_  != 1 && hmin.light_  != 1) {
-    	// Grey scale...
-    	step_light = (hmax.light_ - hmin.light_)/(nb-2);
-    	 for ( int i = 0;  i < nb; i++) {
-       		table.push_back(Colour(hmin));
-      	 	hmin.light_ += step_light;     	 	
-    	 }
-    	 return;
-    }
-  */
-    
-    if (nb == 1) {
-        // Only One Colour to allocate;
-        step_hue = hmax.hue_ - hmin.hue_;
-        step_alpha = hmax.alpha_ - hmin.alpha_;
-        if ( step_hue == 0 ) {
-          step_hue = 1;
-          hmax.hue_++;
-          // Change the value of hmax to be sure that we have at least one colour...
-        }
-    }
-    
-    else { 
+
+
     	step_light = (hmax.light_ - hmin.light_)/(nb-2);
     	step_alpha = (hmax.alpha_ - hmin.alpha_)/(nb-2);
         if ( magCompare(direction_, "anti_clockwise") ) {
@@ -141,7 +114,7 @@ void ColourTableDefinitionCompute::set(ColourTable& table, int nb)
             if ( hmin.hue_ < hmax.hue_ )  hmin.hue_ += 360;
             step_hue =  (hmax.hue_ - hmin.hue_)/(nb-2);
         }
-    }
+
     
     float step_sat =  (hmax.saturation_ - hmin.saturation_)/(nb-2);
     // WE have nb levels : we need nb-1 colours! 
diff --git a/src/common/Coordinate.h b/src/common/Coordinate.h
index edb18c2..b3b6905 100644
--- a/src/common/Coordinate.h
+++ b/src/common/Coordinate.h
@@ -458,7 +458,10 @@ public:
 		YLogarithmicCoordinateAttributes::set(regular);
         set();
     }
-
+	virtual void set(const map<string, string>& map) {
+			YLogarithmicCoordinateAttributes::set(map);
+	        set();
+	    }
 	virtual void toxml(ostream& out) const { YLogarithmicCoordinateAttributes::toxml(out); }
 	void set() {
 		switch ( automatic_ ) {
diff --git a/src/common/FortranRootSceneNodeAttributes.h b/src/common/FortranRootSceneNodeAttributes.h
index 5cff208..56e06dc 100644
--- a/src/common/FortranRootSceneNodeAttributes.h
+++ b/src/common/FortranRootSceneNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/common/FortranSceneNodeAttributes.h b/src/common/FortranSceneNodeAttributes.h
index a9ff25b..a367dac 100644
--- a/src/common/FortranSceneNodeAttributes.h
+++ b/src/common/FortranSceneNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/common/FortranViewNodeAttributes.h b/src/common/FortranViewNodeAttributes.h
index 8312a74..427218b 100644
--- a/src/common/FortranViewNodeAttributes.h
+++ b/src/common/FortranViewNodeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:27 2013
 */
    
 
diff --git a/src/common/GeoRectangularProjectionAttributes.h b/src/common/GeoRectangularProjectionAttributes.h
index 72705cb..6d9af21 100644
--- a/src/common/GeoRectangularProjectionAttributes.h
+++ b/src/common/GeoRectangularProjectionAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:17 2012
+    Generated: Mon Apr 15 17:55:27 2013
 */
    
 
diff --git a/src/common/Layout.cc b/src/common/Layout.cc
index 624e325..835e19c 100644
--- a/src/common/Layout.cc
+++ b/src/common/Layout.cc
@@ -61,7 +61,7 @@ Layout::~Layout()
 
 void Layout::redisplay(const BaseDriver& driver) const
 {
-	if ( objects_.empty() )
+	if ( objects_.empty() && name_ != "drawing")
 		return;
 	MagLog::debug() <<  "Layout::redisplay-->" << *this << endl;
 	driver.redisplay(*this);
@@ -379,9 +379,7 @@ void RootLayout::redisplay(const BaseDriver& driver) const
 			
 
 		}
-		// here we can release the graphics object!
-		MagLog::debug() << "RELEASE OBJECTS!!!!!!!!!!!!" << endl;
-		const_cast<RootLayout*>(this)->clear();
+
 	}
 	else
 		driver.redisplay(*this);
@@ -474,6 +472,14 @@ bool Layout::buildTree(const Layout& parent, unsigned int frame, const BaseDrive
 	return more;
 }
 
+void Layout::release()
+{
+	if ( resolve_ ) {
+		for (vector<BasicGraphicsObject*>::iterator object = objects_.begin(); object!= objects_.end(); ++object)
+				(*object)->release();
+	}
+}
+
 BasicLayout::BasicLayout()
 {
 }
diff --git a/src/common/Layout.h b/src/common/Layout.h
index f84b663..281db72 100644
--- a/src/common/Layout.h
+++ b/src/common/Layout.h
@@ -146,7 +146,7 @@ public:
 	double absoluteHeight()  const; //absolute position from the root
 	
 	bool buildTree(const Layout&, unsigned int, const BaseDriver&) const;
-
+	void release(); // Release the graphical objects!
 	
 	virtual Layout* execute(AnimationStep& step,  const Layout* visitor);
 
@@ -179,7 +179,8 @@ public:
 			height = driverInfos_.front().height_;
 		}
 		else {
-			parent_->getDriverInfo(x, y, width, height);
+			if ( parent_) 
+				parent_->getDriverInfo(x, y, width, height);
 		}
 	}
 
diff --git a/src/common/LogoPlottingAttributes.h b/src/common/LogoPlottingAttributes.h
index 2405552..507d04e 100644
--- a/src/common/LogoPlottingAttributes.h
+++ b/src/common/LogoPlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/common/MagicsCalls.cc b/src/common/MagicsCalls.cc
index 4a78bee..672ba3a 100644
--- a/src/common/MagicsCalls.cc
+++ b/src/common/MagicsCalls.cc
@@ -336,7 +336,7 @@ public :
 		}
 
 
-		return true;
+		return false;
 	}
 };
 
@@ -1138,6 +1138,12 @@ void pinput_()
 {
 	magics_->pinput();
 }
+void ptable_()
+{
+	magics_->ptable();
+}
+
+
 
 void peps_()
 {
@@ -1210,6 +1216,7 @@ void mag_overlay(){poverlay_();}
 void mag_netcdf(){pnetcdf_();}
 void mag_cont()  {pcont_();}
 void mag_input()  {pinput_();}
+void mag_table()  {ptable_();}
 void mag_obs()   {pobs_();}
 void mag_raw()   {praw_();}
 void mag_image() {pimage_();}
@@ -1219,7 +1226,6 @@ void mag_wind()  {pwind_();}
 void mag_symb()  {psymb_();}
 void mag_boxplot()  {pboxplot_();}
 void mag_taylor()  {ptaylor_();}
-
 void mag_wrepjson()  { pwrepjson_(); }
 void mag_epscloud()  { pepscloud_(); }
 
@@ -1448,8 +1454,14 @@ void mag_enqi(const char* name, int *value)
 void mag_enqc(const char* name, char* value)
 {
 	string magics;
-	ParameterManager::get(string(name),magics);
-	strcpy( value, magics.c_str() );
+
+	if (magCompare(string(name), "magics_version") ) {
+		magics = getMagicsVersionString();
+	}
+	else
+		ParameterManager::get(string(name),magics);
+
+ 	strcpy(value, magics.c_str() );
 }
 
 
diff --git a/src/common/MagicsFormat.cc b/src/common/MagicsFormat.cc
index da14237..9bf1345 100644
--- a/src/common/MagicsFormat.cc
+++ b/src/common/MagicsFormat.cc
@@ -227,7 +227,7 @@ bool MagicsFormat::valid(ostream& out) const
 				  	if (isdigit(*c) ) break;
 				  	if ( *c == ')' ) {
 				    	// set the width.
-				  		char bufr[256];
+				  		char bufr[1024];
 				  			string print = "%" + width + precision + specifier;
 				  			
 				  			sprintf(bufr, print.c_str(), value_);
diff --git a/src/common/Makefile.in b/src/common/Makefile.in
index ce42a72..64a19bb 100644
--- a/src/common/Makefile.in
+++ b/src/common/Makefile.in
@@ -277,6 +277,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -361,6 +362,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/common/MatrixHandler.h b/src/common/MatrixHandler.h
index d0f4dd9..0bf24fe 100644
--- a/src/common/MatrixHandler.h
+++ b/src/common/MatrixHandler.h
@@ -575,7 +575,21 @@ public:
            index2 = upperColumn(r);
            column2 = regular_column(index2);
        } 
-  
+       int rowIndex(double r) const {
+         	map<double, int>::const_iterator i = rowsMap_.lower_bound(r);
+         	if ( same(i->first, r) )
+         			return i->second;
+         	return -1;
+
+
+         }
+
+         int columnIndex(double c) const {
+         	map<double, int>::const_iterator i = columnsMap_.lower_bound(c);
+         	if ( same(i->first, c) )
+         	    	return i->second;
+         	return -1;
+         }
     
     virtual ~BoxMatrixHandler() { delete original_; }
      
diff --git a/src/common/OutputHandlerAttributes.h b/src/common/OutputHandlerAttributes.h
index 85dd677..4de5955 100644
--- a/src/common/OutputHandlerAttributes.h
+++ b/src/common/OutputHandlerAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/common/PageIDAttributes.h b/src/common/PageIDAttributes.h
index c3de7e3..b929fef 100644
--- a/src/common/PageIDAttributes.h
+++ b/src/common/PageIDAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/common/UserLogoPlottingAttributes.h b/src/common/UserLogoPlottingAttributes.h
index 11426ef..efe6c2f 100644
--- a/src/common/UserLogoPlottingAttributes.h
+++ b/src/common/UserLogoPlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/common/magics_api.h b/src/common/magics_api.h
index 9fc21d4..7733ab6 100644
--- a/src/common/magics_api.h
+++ b/src/common/magics_api.h
@@ -54,6 +54,7 @@ void mag_boxplot();
 void mag_line();
 void mag_taylor();
 void mag_input();
+void mag_table();
 
 void mag_wrepjson();
 void mag_epscloud();
diff --git a/src/decoders/BinningObjectAttributes.h b/src/decoders/BinningObjectAttributes.h
index a249d0d..32498d2 100644
--- a/src/decoders/BinningObjectAttributes.h
+++ b/src/decoders/BinningObjectAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */
    
 
diff --git a/src/decoders/DateGribLoopStepAttributes.h b/src/decoders/DateGribLoopStepAttributes.h
index bae034b..49d80c9 100644
--- a/src/decoders/DateGribLoopStepAttributes.h
+++ b/src/decoders/DateGribLoopStepAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/decoders/EpsXmlInput.cc b/src/decoders/EpsXmlInput.cc
index 3c01f62..59adf03 100644
--- a/src/decoders/EpsXmlInput.cc
+++ b/src/decoders/EpsXmlInput.cc
@@ -114,14 +114,14 @@ void EpsXmlInput::visit(TextVisitor& title)
 		ostringstream line;
 		UserPoint position(longitude_, latitude_);
 		line << station_ << "(" << position.asLatitude() << ", " << position.asLongitude() << ")" << endl;
-		title.add(new TextEntry(title_));
-		title.add(new TextEntry(line.str()));
-		title.add(new TextEntry(out.str()));
+		title.addAutomaticTitle(title_);
+		title.addAutomaticTitle(line.str());
+		title.addAutomaticTitle(out.str());
 	}
 	if ( short_title_ )
 	{
-		title.add(new TextEntry(""));
-		title.add(new TextEntry(parameter_));
+		title.addAutomaticTitle("");
+		title.addAutomaticTitle(parameter_);
 	}
 }
 
diff --git a/src/decoders/EpsgramDecoder.cc b/src/decoders/EpsgramDecoder.cc
index 1dc1ded..4edb92a 100644
--- a/src/decoders/EpsgramDecoder.cc
+++ b/src/decoders/EpsgramDecoder.cc
@@ -1239,8 +1239,8 @@ void SpotDecoder::visit(TextVisitor& title)
 	decode();
 	moreTitle(title);
 	
-	if ( parameter_ && !magCompare(parameter_->title(), "ignore")  )
-				title.add(new TextEntry(parameter_->title()));
+	if ( !magCompare(parameter_->title(), "ignore")  )
+			title.update("spot", "parameter",  parameter_->title());
 }
 
 static string build_date(const string& date, const string& time)
@@ -1309,11 +1309,10 @@ EpsgramDecoder::~EpsgramDecoder()
 
 void EpsgramDecoder::moreTitle(TextVisitor& title) const 
 {
-	if (long_title_ == false ) return;
 	
 	static map<string, string> titles;
 	if ( titles.empty() ) {
-		titles["eps10"] = "Deterministic Forecast and EPS Distribution ";
+		titles["eps10"] = "";
 		titles["eps15"] = "Extended Range Forecast based on EPS Distribution ";
 		titles["epsrose"] = "Deterministic Forecast and EPS Distribution ";
 		titles["epsplume"] = "ECMWF ensemble forecast ";
@@ -1345,14 +1344,9 @@ void EpsgramDecoder::moreTitle(TextVisitor& title) const
     	station = station + string(" ")  + grid_.asLatitude() + " " + grid_.asLongitude() + landsea + height;
     }
     
- 	title.add(new TextEntry(station));
+ 	title.update("spot", "base_date",  date);
+ 	title.update("spot", "station",  station);
 	
-	map<string, string>::const_iterator t = titles.find(SpotDecoder::type_);
-	if ( t != titles.end() )
- 		title.add(new TextEntry(t->second + date));
-	else 
-		title.add(new TextEntry(SpotDecoder::type_ + "title to implement " + date));
- 	title.add(new TextEntry());
 }
 
 
diff --git a/src/decoders/GeoPointsDecoderAttributes.h b/src/decoders/GeoPointsDecoderAttributes.h
index 40f2952..0522c59 100644
--- a/src/decoders/GeoPointsDecoderAttributes.h
+++ b/src/decoders/GeoPointsDecoderAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/decoders/GribDecoderAttributes.h b/src/decoders/GribDecoderAttributes.h
index 97bd20a..4f75ef2 100644
--- a/src/decoders/GribDecoderAttributes.h
+++ b/src/decoders/GribDecoderAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/decoders/GribLoopAttributes.h b/src/decoders/GribLoopAttributes.h
index 12ba557..00413d5 100644
--- a/src/decoders/GribLoopAttributes.h
+++ b/src/decoders/GribLoopAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/decoders/GribRegularInterpretor.cc b/src/decoders/GribRegularInterpretor.cc
index 6d53aba..f646b18 100644
--- a/src/decoders/GribRegularInterpretor.cc
+++ b/src/decoders/GribRegularInterpretor.cc
@@ -305,6 +305,7 @@ void  GribRegularInterpretor::latitudes(const GribDecoder& grib, vector<double>&
 				latitudes.push_back(y);
 				 y  += lat;
 		}
+
 }
 
 
@@ -313,16 +314,20 @@ void GribRegularGaussianInterpretor::latitudes(const GribDecoder& grib, vector<d
 	long res     = grib.getLong("numberOfParallelsBetweenAPoleAndTheEquator");
 	double array[2 *res];
 	grib_get_gaussian_latitudes(res, array);
-	 double north = grib.getDouble("latitudeOfFirstGridPointInDegrees");
-	 
-	  double south = grib.getDouble("latitudeOfLastGridPointInDegrees");; 
-	
+	double first = grib.getDouble("latitudeOfFirstGridPointInDegrees");
+	double last = grib.getDouble("latitudeOfLastGridPointInDegrees");;
+
+	double north = std::max(first, last);
+	double south = std::min(first, last);
 	for ( int i = 0; i < 2*res; i++ )
 	{
 		if ( array[i] <= north && array[i] >= south)
 			latitudes.push_back(array[i]);
 	}
-	
+	// get the scanning mode !
+	long scanning = grib.getLong("jScansPositively");;
+	if (scanning == 1 )
+		std::reverse(latitudes.begin(), latitudes.end());
 }
 
 
diff --git a/src/decoders/ImportActionAttributes.h b/src/decoders/ImportActionAttributes.h
index 0b354d5..d099b81 100644
--- a/src/decoders/ImportActionAttributes.h
+++ b/src/decoders/ImportActionAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/decoders/InputData.cc b/src/decoders/InputData.cc
index 0669702..f0ef16d 100644
--- a/src/decoders/InputData.cc
+++ b/src/decoders/InputData.cc
@@ -123,7 +123,9 @@ void InputData::customisedPoints(const Transformation& transformation, const std
 {
 	prepare();
 	vector<double>::const_iterator x = x_values_.begin();
+	vector<double>::const_iterator x2 = x2_values_.begin();
 	vector<double>::const_iterator y = y_values_.begin();
+	vector<double>::const_iterator y2 = y2_values_.begin();
 	vector<double>::const_iterator xc = x_component_.begin();
 	vector<double>::const_iterator yc = y_component_.begin();
 	vector<double>::const_iterator v = values_.begin();
@@ -153,11 +155,13 @@ void InputData::customisedPoints(const Transformation& transformation, const std
 		if ( same(*x, x_missing_) )
 			point->missing(true);
 		(*point)["x"] = valx;
+		(*point)["x_lower"] = valx;
 		x++;
 
 		if ( same(*y, y_missing_) )
 			point->missing(true);
 		(*point)["y"] = valy;
+		(*point)["y_lower"] = valy;
 		y++;
 
 		double speed = 0;
@@ -176,20 +180,35 @@ void InputData::customisedPoints(const Transformation& transformation, const std
 		}
 		else
 			(*point)["colour_component"] = speed;
+
+		if (needs.find("bar")  != needs.end()) {
+
+			if ( y2 != y2_values_.end() ) {
+				(*point)["y_upper"] = *(y2++);
+			}
+			if ( x2 != x2_values_.end() ) {
+
+				(*point)["x_upper"] = *(x2++);
+			}
+
+		}
 	}
+
+
+
 	if ( needs.find("area")  == needs.end() )
 		return;
-	vector<double>::reverse_iterator x2 = x2_values_.rbegin();
-	vector<double>::reverse_iterator y2 = y2_values_.rbegin();
-	while (  x2 != x2_values_.rend() && y2 != y2_values_.rend()  ) {
+	vector<double>::reverse_iterator xr2 = x2_values_.rbegin();
+	vector<double>::reverse_iterator yr2 = y2_values_.rbegin();
+	while (  xr2 != x2_values_.rend() && yr2 != y2_values_.rend()  ) {
 		CustomisedPoint* point = new CustomisedPoint();
-		if ( same(*x2, x_missing_) )
+		if ( same(*xr2, x_missing_) )
 			point->missing(true);
-		(*point)["x"] = *(x2++);
+		(*point)["x"] = *(xr2++);
 
-		if ( same(*y2, y_missing_) )
+		if ( same(*yr2, y_missing_) )
 			point->missing(true);
-		(*point)["y"] = *(y2++);
+		(*point)["y"] = *(yr2++);
 		out.push_back(point);
 	}
 }
diff --git a/src/decoders/InputMatrixInterpretor.cc b/src/decoders/InputMatrixInterpretor.cc
index 7640228..33a41df 100644
--- a/src/decoders/InputMatrixInterpretor.cc
+++ b/src/decoders/InputMatrixInterpretor.cc
@@ -127,16 +127,18 @@ Matrix* InputMatrixRegularInterpretor::xyInterpret(Matrix* in, const InputMatrix
 	// if y a date or an normal axis..
 
 	if ( !y_first_date_.empty() ) {
-		y_first_ = 0;
+		DateTime ref(dateY_);
 		DateTime from(y_first_date_);
 		DateTime to(y_last_date_);
-		y_last_ = to-from;
+		y_first_ = from-ref;
+		y_last_ = to-ref;
 	}
 	if ( !x_first_date_.empty() ) {
-			x_first_ = 0;
+			DateTime ref(dateX_);
 			DateTime from(x_first_date_);
 			DateTime to(x_last_date_);
-			x_last_ = to-from;
+			x_first_ = from-ref;
+			x_last_ = to-ref;
 	}
 	double y = y_first_;
 	double step = (y_last_ - y_first_)/(in->rows()-1);
@@ -273,7 +275,12 @@ void InputMatrixRegularInterpretor::getReady(const Transformation& transformatio
 {
     if ( transformation.xAxisType() != "date" )
         x_first_date_.clear();
+    else
+    	dateX_ = transformation.getReferenceX();
+
     if ( transformation.yAxisType() != "date" )
         y_first_date_.clear();
+    else
+        dateY_ = transformation.getReferenceY();
 }
 
diff --git a/src/decoders/InputMatrixInterpretor.h b/src/decoders/InputMatrixInterpretor.h
index b1b3210..738fc5e 100644
--- a/src/decoders/InputMatrixInterpretor.h
+++ b/src/decoders/InputMatrixInterpretor.h
@@ -104,6 +104,8 @@ public:
 protected:
 	//! Method to print string about this class on to a stream of type ostream (virtual).
 	 virtual void print(ostream&) const; 
+	 string dateX_; // Used to adjust the Matrix according to the projection
+	 string dateY_; // Used to adjust the Matrix according to the projection
 
 private:
 	//! Copy constructor - No copy allowed
diff --git a/src/decoders/Makefile.in b/src/decoders/Makefile.in
index f3991a2..c39d115 100644
--- a/src/decoders/Makefile.in
+++ b/src/decoders/Makefile.in
@@ -294,6 +294,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -378,6 +379,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/decoders/Netcdf.cc b/src/decoders/Netcdf.cc
index ef19eee..a912881 100644
--- a/src/decoders/Netcdf.cc
+++ b/src/decoders/Netcdf.cc
@@ -51,25 +51,7 @@ Convertor<From,To>::Convertor(NetVariable& var) : variable_(var)
 	add_offset_ = variable_.getAttribute("add_offset", offset);
 }
 
-/*
-template <class T>
-void Accessor<T>::access(vector<T>& data, vector<long> start, vector<long> edges, NetVariable& var) 
-{
-        typename map<NcType, Accessor<T>*>::const_iterator accessor = accessors_->find(var.id_->type());
-        if ( accessor == accessors_->end() ) throw new MagicsException("No accessor available");
-        
-        (*(*accessor).second)(data, start, edges, var);
-}
-*/
 
-//template <class T>
-//void Accessor<T>::access(vector<T>& data, NetDimension& dim) 
-//{
-//       typename map<NcType, Accessor<T>*>::const_iterator accessor = accessors_->find(var.id_->type());
-//       if ( accessor == accessors_->end() ) throw new MagicsException("No accessor available");
-
-//        (*(*accessor).second)(data, dim);
-//}
 
 template <class F, class T>   
 void TypedAccessor<F,T>::operator() (vector<T>& to, vector<long>& start, vector<long>& edges, NetVariable& var) const
@@ -282,6 +264,13 @@ NetVariable::NetVariable(const string& name, NcVar* id, const NcFile& file): nam
 			attributes_[att->name()] = NetAttribute(att->name(), att); 
 		}
 	}
+double NetVariable::getDefaultMissing()
+{
+
+	if (id_->type() == ncDouble)
+		return NC_FILL_DOUBLE;
+	return NC_FILL_FLOAT;
+}
 
 namespace magics {
 	template<> map<NcType, Accessor<double>*>*  Accessor<double>::accessors_ = 0;
diff --git a/src/decoders/Netcdf.h b/src/decoders/Netcdf.h
index fdd215a..6a4cda3 100644
--- a/src/decoders/Netcdf.h
+++ b/src/decoders/Netcdf.h
@@ -233,6 +233,8 @@ struct NetVariable
    
     } 
     
+    double getDefaultMissing();
+
     template <class T>
     void get(vector<T>& vals, map<string, string> first, map<string, string> last)  
     {
@@ -274,6 +276,12 @@ public:
 	
     typedef map<string, NetVariable> VariableMap;
     
+    double getDefaultMissing(const string& name)
+    {
+    	  map<string, NetVariable>::iterator var = variables_.find(name);
+    	  if ( var == variables_.end() ) throw NoSuchNetcdfVariable(name);
+    	  return var->second.getDefaultMissing();
+    }
 
     template <class T>
     void get(const string& name, vector<T>& vals, 
@@ -285,7 +293,8 @@ public:
         if ( var == variables_.end() ) throw NoSuchNetcdfVariable(name);
         (*var).second.get(vals, first, last);
     }
-    
+
+
     template <class T>
     void get(const string& name, vector<T>& vals)
     {
diff --git a/src/decoders/NetcdfDecoderAttributes.h b/src/decoders/NetcdfDecoderAttributes.h
index b10a6d4..d5ba6e0 100644
--- a/src/decoders/NetcdfDecoderAttributes.h
+++ b/src/decoders/NetcdfDecoderAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/NetcdfGeoMatrixInterpretor.cc b/src/decoders/NetcdfGeoMatrixInterpretor.cc
index ed292eb..fc52545 100644
--- a/src/decoders/NetcdfGeoMatrixInterpretor.cc
+++ b/src/decoders/NetcdfGeoMatrixInterpretor.cc
@@ -54,7 +54,11 @@ void NetcdfGeoMatrixInterpretor::interpretAsMatrix(Matrix** data)
 
    
 	Netcdf netcdf(path_);
-	double missing_value = missing(netcdf);
+
+	double missing_value = netcdf.getDefaultMissing(field_);
+
+	missing_value = netcdf.getVariableAttribute(field_, missing_attribute_, missing_value);
+
 
 	// get the data ...
 	try
@@ -148,7 +152,7 @@ void NetcdfGeoMatrixInterpretor::interpretAsPoints(PointsList& list)
 				if ( values[val] < suppress_below_ ) continue;
 				if ( values[val] > suppress_above_ ) continue;
 				if ( same(values[val], missing_value ) ) continue;
-				list.push_back(new UserPoint(longitudes[lon],latitudes[lat],values[val]));
+				list.push_back(new UserPoint(longitudes[lon], latitudes[lat], (values[val]*scaling_) + offset_));
 			}
 		}
  		MagLog::dev()<< "everything ok" << endl;
diff --git a/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h b/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h
index 91afa17..69beab9 100644
--- a/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeoMatrixInterpretorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h b/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h
index 2e54eee..710e6c0 100644
--- a/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeoPolarMatrixInterpretorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/NetcdfGeoVectorInterpretorAttributes.h b/src/decoders/NetcdfGeoVectorInterpretorAttributes.h
index 56f0232..6be49b5 100644
--- a/src/decoders/NetcdfGeoVectorInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeoVectorInterpretorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/NetcdfGeopointsInterpretorAttributes.h b/src/decoders/NetcdfGeopointsInterpretorAttributes.h
index 27b9011..c34cf4b 100644
--- a/src/decoders/NetcdfGeopointsInterpretorAttributes.h
+++ b/src/decoders/NetcdfGeopointsInterpretorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/NetcdfInterpretorAttributes.h b/src/decoders/NetcdfInterpretorAttributes.h
index 11946c9..5dca2d6 100644
--- a/src/decoders/NetcdfInterpretorAttributes.h
+++ b/src/decoders/NetcdfInterpretorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/NetcdfMatrixInterpretor.cc b/src/decoders/NetcdfMatrixInterpretor.cc
index 0149eb8..5715074 100644
--- a/src/decoders/NetcdfMatrixInterpretor.cc
+++ b/src/decoders/NetcdfMatrixInterpretor.cc
@@ -62,6 +62,7 @@ void NetcdfMatrixInterpretor::interpretAsMatrix(Matrix** matrix)
 	matrix_->missing(std::numeric_limits<double>::max());
 
 	Netcdf netcdf(path_);
+	matrix_->missing(netcdf.getDefaultMissing(field_));
 	string title = netcdf.getAttribute("title", "NO TITLE");
 
 
@@ -69,12 +70,36 @@ void NetcdfMatrixInterpretor::interpretAsMatrix(Matrix** matrix)
     y();
 	// get the data ...
 	try {
+		string missing = netcdf.getVariableAttribute(field_, missing_attribute_, "");
+		if ( !missing.empty() ) {
+			std::stringstream ss(missing);
+			double m;
+			ss >> m;
+		    matrix_->missing(m);
+		}
+
 		map<string, string> first, last;
 		setDimensions(dimension_, first, last);
-		MagLog::debug() << "matrix_" << matrix_->size() << "\n";
-        
-		netcdf.get(field_, *matrix_, first, last);
+		vector<double> rows = dateRows_.empty() ? rows_ : dateRows_;
+		for ( vector<double>::iterator r = rows.begin(); r != rows.end(); r++) {
+			vector<string> dims;
+			ostringstream x,y;
+			x.precision(20);
+			y.precision(20);
+			y << y_ << "/" << *r;
+			x << x_ << "/" << columns_.front() << "/" << columns_.back();
+			dims.push_back(y.str());
+			dims.push_back(x.str());
+			setDimensions(dims, first, last);
+			vector<double> data;
+			netcdf.get(field_, data, first, last);
+			for ( vector<double>::iterator d = data.begin(); d != data.end(); d++) {
+					matrix_->push_back(*d);
+			}
+
+		}
 		
+
 		MagLog::debug() << "matrix_[" << matrix_->size() << ", " << scaling_ << ", " << offset_ << "]" << "\n";
 
 		matrix_->multiply(scaling_);
@@ -87,13 +112,6 @@ void NetcdfMatrixInterpretor::interpretAsMatrix(Matrix** matrix)
 		
 		vector<double> col;
 	  
-		string missing = netcdf.getVariableAttribute(field_, missing_attribute_, "");
-		if ( !missing.empty() ) {
-			std::stringstream ss(missing);		
-			double m;
-			ss >> m;
-            matrix_->missing(m);
-		}
 		
 		
 		matrix_->setColumnsAxis(columns_);
@@ -123,7 +141,7 @@ void NetcdfMatrixInterpretor::print(ostream& out)  const
 
 
 
-bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords)
+bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords, vector<double>& originals)
 {
 	static map<string, double> factors;
 	if ( factors.empty() ) {
@@ -132,6 +150,9 @@ bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var,
 	}
 	string date = netcdf.getVariableAttribute(var, "reference_date", "");
 	if ( date.empty() ) return false;
+	originals.reserve(coords.size());
+	for (vector<double>::iterator c = coords.begin(); c != coords.end(); ++c)
+		 originals.push_back(*c);
 	string units = netcdf.getVariableAttribute(var, "units", "");
 	basedate = date;
 	double diff = ( refdate.empty() ) ? 0 : DateTime(date) - DateTime(refdate) ;
@@ -141,7 +162,7 @@ bool NetcdfMatrixInterpretor::reference_date(Netcdf& netcdf, const string& var,
 	std::transform(coords.begin(), coords.end(),  coords.begin(), Plus(diff, std::numeric_limits<double>::max()));
 }
 
-bool NetcdfMatrixInterpretor::cf_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords)
+bool NetcdfMatrixInterpretor::cf_date(Netcdf& netcdf, const string& var, const string& refdate, string& basedate, vector<double>& coords, vector<double>& originals)
 {
 	//Step 1 : try to find a attribute long_name = time
 	//Step 2 : Parse the attribute  units : days since date
@@ -156,6 +177,9 @@ bool NetcdfMatrixInterpretor::cf_date(Netcdf& netcdf, const string& var, const s
 
 	string units = netcdf.getVariableAttribute(var, "units", "");
 	if ( units.empty() ) return false;
+	originals.reserve(coords.size());
+	for (vector<double>::iterator c = coords.begin(); c != coords.end(); ++c)
+		 originals.push_back(*c);
 
 	// Now we parse the string !
 	vector<string> tokens;
@@ -184,8 +208,8 @@ void NetcdfMatrixInterpretor::x()
     try {
         netcdf.get(x_, columns_, first, last);
         baseDateX_ = "";
-        if ( !reference_date(netcdf, x_, refDateX_, baseDateX_, columns_) )
-        	cf_date(netcdf, x_, refDateX_, baseDateX_, columns_);
+        if ( !reference_date(netcdf, x_, refDateX_, baseDateX_, columns_, dateColumns_) )
+        	cf_date(netcdf, x_, refDateX_, baseDateX_, columns_, dateColumns_);
 	} 
     catch (...) {
         int x = netcdf.getDimension(x_);
@@ -223,9 +247,10 @@ void NetcdfMatrixInterpretor::y()
     setDimensions(dimension_, first, last);
     try {
     	 netcdf.get(y_, rows_, first, last);
+
     	 baseDateY_ = "";
-    	 if ( !reference_date(netcdf, y_, refDateY_, baseDateY_, rows_) )
-    	      cf_date(netcdf, y_, refDateY_, baseDateY_, rows_);
+    	 if ( !reference_date(netcdf, y_, refDateY_, baseDateY_, rows_, dateRows_) )
+    	      cf_date(netcdf, y_, refDateY_, baseDateY_, rows_, dateRows_);
 	} 
     catch (...) {
         int y = netcdf.getDimension(y_);
@@ -253,10 +278,10 @@ void NetcdfMatrixInterpretor::getReady(const Transformation& transformation)
 {
 	// adjust the data to the transformation..
 
-	refDateX_ = ( !transformation.getAutomaticX() ) ? "" : transformation.getReferenceX();
+	refDateX_ = transformation.getReferenceX(); //( transformation.getAutomaticX() ) ? "" : transformation.getReferenceX();
 	columns_.clear();
 	x();
-	refDateY_ = ( !transformation.getAutomaticY() ) ? "" : transformation.getReferenceY();
+	refDateY_ = transformation.getReferenceY(); //( transformation.getAutomaticY() ) ? "" : transformation.getReferenceY();
 	rows_.clear();
 	y();
 
diff --git a/src/decoders/NetcdfMatrixInterpretor.h b/src/decoders/NetcdfMatrixInterpretor.h
index cebdc56..55c500c 100644
--- a/src/decoders/NetcdfMatrixInterpretor.h
+++ b/src/decoders/NetcdfMatrixInterpretor.h
@@ -92,9 +92,9 @@ public:
     virtual void statsData(map<string,vector<double> >&);
 	virtual void x();
 	virtual void y(); 
-	bool cf_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&);
+	bool cf_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&, vector<double>&);
 	//return true, if the the data is date CF-compliant and the date axis has been set
-	bool reference_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&);
+	bool reference_date(Netcdf& netcdf, const string&, const string&, string&, vector<double>&, vector<double>&);
 	//return true, if the the data is Metview-date compliant and the date axis has been set
 protected:
      //! Method to print string about this class on to a stream of type ostream (virtual).
@@ -102,7 +102,8 @@ protected:
 	 Matrix* matrix_;
 	 vector<double> columns_;
 	 vector<double> rows_;
-
+	 vector<double> dateRows_; // Used when dealing with date dimensions to store the original values
+	 vector<double> dateColumns_; // Used when dealing with date dimensions to store the original values
 	 string baseDateX_;
 	 string baseDateY_;
 	 string geoMinX_;
diff --git a/src/decoders/NetcdfMatrixInterpretorAttributes.h b/src/decoders/NetcdfMatrixInterpretorAttributes.h
index 1738d1e..3247746 100644
--- a/src/decoders/NetcdfMatrixInterpretorAttributes.h
+++ b/src/decoders/NetcdfMatrixInterpretorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/NetcdfVectorInterpretorAttributes.h b/src/decoders/NetcdfVectorInterpretorAttributes.h
index f5140f9..a4e02d9 100644
--- a/src/decoders/NetcdfVectorInterpretorAttributes.h
+++ b/src/decoders/NetcdfVectorInterpretorAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/ObsDecoderAttributes.h b/src/decoders/ObsDecoderAttributes.h
index 18dcc1f..ae8466c 100644
--- a/src/decoders/ObsDecoderAttributes.h
+++ b/src/decoders/ObsDecoderAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:23 2013
 */
    
 
diff --git a/src/decoders/ObsStatDecoderAttributes.h b/src/decoders/ObsStatDecoderAttributes.h
index 55cad96..21939e2 100644
--- a/src/decoders/ObsStatDecoderAttributes.h
+++ b/src/decoders/ObsStatDecoderAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/drivers/BaseDriverSymbols.h b/src/drivers/BaseDriverSymbols.h
index fe91657..fbe3b0b 100644
--- a/src/drivers/BaseDriverSymbols.h
+++ b/src/drivers/BaseDriverSymbols.h
@@ -143,17 +143,17 @@ MAGICS_NO_EXPORT void BaseDriver::renderTextSymbols(const TextSymbol& symbol) co
 		}
 		else if( symbol.position() == Symbol::M_LEFT )
 		{
-			shiftX = convertCM(symbol.getHeight()*.5)/coordRatioX_;
+			shiftX = -convertCM(symbol.getHeight()*.5)/coordRatioX_;
 			text.setJustification(MRIGHT);
 		}
 		else if( symbol.position() == Symbol::M_BELOW )
 		{
-			shiftY = -convertCM(symbol.getHeight()*.6)/coordRatioY_;
+			shiftY = setY(-convertCM(symbol.getHeight()*.6)/coordRatioY_);
 			text.setVerticalAlign(MTOP);
 		}
 		else if( symbol.position() == Symbol::M_ABOVE )
 		{
-			shiftY = convertCM(symbol.getHeight()*1.0)/coordRatioY_;
+			shiftY = setY(convertCM(symbol.getHeight()*0.8)/coordRatioY_);
 			text.setVerticalAlign(MBOTTOM);
 		}
 
diff --git a/src/drivers/Makefile.in b/src/drivers/Makefile.in
index 1bc80c0..533f474 100644
--- a/src/drivers/Makefile.in
+++ b/src/drivers/Makefile.in
@@ -275,6 +275,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -359,6 +360,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/drivers/PostScriptDriver.cc b/src/drivers/PostScriptDriver.cc
index 009619b..af4ecc5 100644
--- a/src/drivers/PostScriptDriver.cc
+++ b/src/drivers/PostScriptDriver.cc
@@ -1076,8 +1076,13 @@ MAGICS_NO_EXPORT void PostScriptDriver::renderText(const Text& text) const
 
 			if(u>1)
 			{
-				*ps <<"gs "<< x0 << " " << y0 << " t ("<< all_text.str() << ") stringwidth pop HA mul VA Height mul moveto "
-				    << "("<<tmp.str()<< ") "<<showCommand<<"\n";
+				const MFloat an = 360.-(text.getAngle()*57.29577951);
+				if(an==0 || an==360)
+				    *ps <<"gs "<< x0 << " " << y0 << " t ("<< all_text.str() << ") stringwidth pop HA mul VA Height mul moveto "
+				        << "("<<tmp.str()<< ") "<<showCommand<<"\n";
+				else
+				    *ps <<"gs "<< x0 << " " << y0 << " t "<<an<< " ro ("<< all_text.str() << ") stringwidth pop HA mul VA Height mul moveto "
+				        << "("<<tmp.str()<< ") "<<showCommand<<"\n";
 			}
 			else
 			{
diff --git a/src/drivers/QtDriver.cc b/src/drivers/QtDriver.cc
index e2b91e9..620ef1e 100644
--- a/src/drivers/QtDriver.cc
+++ b/src/drivers/QtDriver.cc
@@ -1162,61 +1162,56 @@ MAGICS_NO_EXPORT void QtDriver::renderText(const Text& text) const
 		}
 	}      
 
-	//If all the text items has the same font ....
-	if(sameFontForItems)
-	{
-                const MagFont magfont=magfontFirst;
-		const std::set<string>& styles = magfont.styles();
-
-		pheight = 72.*magfont.size()/2.54; //height in points
-		pheight/=dpiResolutionRatio_; 		
-		pheight*=fontSizeFactor_;
-			
-                QFont font(QString::fromStdString(magfont.name()), pheight);
-		font.setPointSizeF(pheight);
+	//Loop for all string CO-ORDINATES
+	unsigned int noTexts = text.size();
+	for(unsigned int nT=0;nT<noTexts;nT++)  
+	{		
+		const MFloat x0 = projectX(text[nT].x());
+		const MFloat y0 = projectY(text[nT].y());
+		const MFloat an = text.getAngle()*57.29577951;
+		
+		//----------------------------------------------
+		// If all the text items have the same font ....
+		//----------------------------------------------
 		
-		if (styles.find("underlined") != styles.end()) font.setUnderline(true);
-                if(styles.find("bold") != styles.end())        font.setBold(true);
-                if(styles.find("italic") != styles.end())      font.setItalic(true);
+		if(sameFontForItems)
+		{
+               		const MagFont magfont=magfontFirst;
+			const std::set<string>& styles = magfont.styles();
 
-		QString allText;
-		for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
-		{	
-			QString str;
-			textToUnicode((*niceText).text(),str);
-			allText+=str;
-		}
+			pheight = 72.*magfont.size()/2.54; //height in points
+			pheight/=dpiResolutionRatio_; 		
+			pheight*=fontSizeFactor_;
+		
+			QFont font(QString::fromStdString(magfont.name()), pheight);
+			font.setPointSizeF(pheight);
+		
+			if (styles.find("underlined") != styles.end()) font.setUnderline(true);
+                	if(styles.find("bold") != styles.end())        font.setBold(true);
+                	if(styles.find("italic") != styles.end())      font.setItalic(true);
+		
+			QString allText;
+			for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
+			{	
+				QString str;
+				textToUnicode((*niceText).text(),str);
+				allText+=str;
+			}
+			
+			QFontMetrics fm(font);
+                	int width  = fm.width(allText);
+                	int height = fm.height();
 
-		QFontMetrics fm(font);
-                int width  = fm.width(allText);
-                int height = fm.height();
-
-		MFloat x = 0;
-                if(horizontal == MCENTRE)     x = width*.5;
-                else if(horizontal == MRIGHT) x = width;
-
-		MFloat y = 0.;
-                if (vertical==MBASE)        { y = height;}
-                else if (vertical==MTOP)    { y = 0.;}
-                else if (vertical==MHALF)   { y = height*.5;}
-                else if (vertical==MBOTTOM) { y = height;}
-
-	  	unsigned int noTexts = text.size();
-	 	for(unsigned int nT=0;nT<noTexts;nT++)  // for all string CO-ORDINATES
-	  	{		
-			const MFloat x0 = projectX(text[nT].x());
-			const MFloat y0 = projectY(text[nT].y());
-			const MFloat an = text.getAngle()*57.29577951;
- 
-			//for debugging: Uncomment this to render red a circle to the text position!
-			/*
-			{
-				QGraphicsEllipseItem *item=new QGraphicsEllipseItem(-2,-2,4,4);
-				item->setBrush(Qt::red);
-				item->setParentItem(currentItem_);
-				item->setPos(x0,y0);
-			}*/
+			MFloat x = 0;
+                	if(horizontal == MCENTRE)     x = width*.5;
+                	else if(horizontal == MRIGHT) x = width;
 
+			MFloat y = 0.;
+                	if (vertical==MBASE)        { y = height;}
+                	else if (vertical==MTOP)    { y = 0.;}
+                	else if (vertical==MHALF)   { y = height*.5;}
+                	else if (vertical==MBOTTOM) { y = height;}
+			
 			//Create the item
 			MgQTextItem *item= new MgQTextItem(allText);
 			item->setParentItem(currentItem_);
@@ -1245,52 +1240,70 @@ MAGICS_NO_EXPORT void QtDriver::renderText(const Text& text) const
 
 			item->setPos(x0,y0);
 		}
-	}
-	
-	//If the text item fonts differ ...
-	else
-	{
-		//Loop for the indidual text items
-		for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)                               
-		{					
-			const MagFont magfont = niceText->font();
-	
-			const std::set<string>& styles = magfont.styles();
-	
-			pheight = 72.*magfont.size()/2.54; //height in points
-			pheight/=dpiResolutionRatio_; 		
-			pheight*=fontSizeFactor_;
 		
-			QFont font(QString::fromStdString(magfont.name()), pheight);
-			font.setPointSizeF(pheight);
-			if (styles.find("underlined") != styles.end()) font.setUnderline(true);
-			if(styles.find("bold") != styles.end())        font.setBold(true);
-			if(styles.find("italic") != styles.end())      font.setItalic(true);
-	
-			QString str;
-			textToUnicode((*niceText).text(),str);
-			//QString str = QString::fromStdString((*niceText).text());
-	
-			QFontMetrics fm(font);
-			int width  = fm.width(str);
-			int height = fm.height();
+		//--------------------------------------
+		// If the text item fonts differ ...
+		//--------------------------------------
+		
+		else
+		{
+		  	//Find out text width
+			int totalWidth=0;
+			for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)
+			{	
+				const MagFont magfont = niceText->font();
+				const std::set<string>& styles = magfont.styles();
 	
-			MFloat x = 0;
-			if(horizontal == MCENTRE)     x = width*.5;
-			else if(horizontal == MRIGHT) x = width;
+				pheight = 72.*magfont.size()/2.54; //height in points
+				pheight/=dpiResolutionRatio_; 		
+				pheight*=fontSizeFactor_;
+		
+				QFont font(QString::fromStdString(magfont.name()), pheight);
+				font.setPointSizeF(pheight);
+				if (styles.find("underlined") != styles.end()) font.setUnderline(true);
+				if(styles.find("bold") != styles.end())        font.setBold(true);
+				if(styles.find("italic") != styles.end())      font.setItalic(true);
+	
+				QString str;
+				textToUnicode((*niceText).text(),str);
+				
+				QFontMetrics fm(font);
+				totalWidth+=fm.width(str);			
+			}
+			
+			//Find out text start position
+			int xPos=x0;;
+			if(horizontal == MCENTRE)     xPos-=totalWidth*.5;
+			else if(horizontal == MRIGHT) xPos-=totalWidth;
+				
+		  	//Loop for the indidual text items
+			for(vector<NiceText>::const_iterator niceText=text.textBegin(); niceText != text.textEnd(); niceText++)                               
+			{					
+				const MagFont magfont = niceText->font();	
+				const std::set<string>& styles = magfont.styles();
+	
+				pheight = 72.*magfont.size()/2.54; //height in points
+				pheight/=dpiResolutionRatio_; 		
+				pheight*=fontSizeFactor_;
+		
+				QFont font(QString::fromStdString(magfont.name()), pheight);
+				font.setPointSizeF(pheight);
+				if (styles.find("underlined") != styles.end()) font.setUnderline(true);
+				if(styles.find("bold") != styles.end())        font.setBold(true);
+				if(styles.find("italic") != styles.end())      font.setItalic(true);
+	
+				QString str;
+				textToUnicode((*niceText).text(),str);
+			
+				QFontMetrics fm(font);
+				int width  = fm.width(str);
+				int height = fm.height();
 	
-			MFloat y = 0.;
-			if (vertical==MBASE)        { y = height;}
-			else if (vertical==MTOP)    { y = 0.;}
-			else if (vertical==MHALF)   { y = height*.5;}
-			else if (vertical==MBOTTOM) { y = height;}
-	
-			unsigned int noTexts = text.size();
-			for(unsigned int nT=0;nT<noTexts;nT++)  // for all string CO-ORDINATES
-			{		
-				const MFloat x0 = projectX(text[nT].x());
-				const MFloat y0 = projectY(text[nT].y());
-				const MFloat an = text.getAngle()*57.29577951;
+				MFloat y = 0.;
+				if (vertical==MBASE)        { y = height;}
+				else if (vertical==MTOP)    { y = 0.;}
+				else if (vertical==MHALF)   { y = height*.5;}
+				else if (vertical==MBOTTOM) { y = height;}
 	
 				//Create the item
 				MgQTextItem *item= new MgQTextItem(str);
@@ -1306,17 +1319,19 @@ MAGICS_NO_EXPORT void QtDriver::renderText(const Text& text) const
 				}
 		
 				item->setPos(x0,y0);
+				
+				if(an !=0 &&  an != 360)	
+					item->rotate(an);
+				
 				QTransform tr;
 				tr.scale(1.,-1.);
-				tr.translate(-x,-y);
+				tr.translate(xPos-x0,-y);
 				item->setTransform(tr);
 	
-				if(an !=0 &&  an != 360)	
-					item->rotate(an);
+				xPos+=width;
 			}
-		}
-	}
-
+		}		
+	}	
 }
 
  // \brief Convert std::string to unicode QString  	
diff --git a/src/libMagWrapper/Makefile.in b/src/libMagWrapper/Makefile.in
index 3ff72a9..0e30d9b 100644
--- a/src/libMagWrapper/Makefile.in
+++ b/src/libMagWrapper/Makefile.in
@@ -315,6 +315,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -399,6 +400,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/libTable/Makefile.in b/src/libTable/Makefile.in
index fb616dd..1e34bcd 100644
--- a/src/libTable/Makefile.in
+++ b/src/libTable/Makefile.in
@@ -150,6 +150,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -234,6 +235,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/magics_config.h b/src/magics_config.h
index bdd4103..ad474dc 100644
--- a/src/magics_config.h
+++ b/src/magics_config.h
@@ -63,7 +63,7 @@
 /* #undef MAGICS_32BIT */
 
 /* Install all header files. */
-/* #undef MAGICS_ALLHEADERS */
+#define MAGICS_ALLHEADERS 1
 
 /* Turn off the BUFR support */
 #define MAGICS_BUFR 1
@@ -72,7 +72,7 @@
 #define MAGICS_CAIRO 1
 
 /* Period of Copyright. */
-#define MAGICS_COPYRIGHT_PERIOD "2007-2012"
+#define MAGICS_COPYRIGHT_PERIOD "2007-2013"
 
 /* Turn on the use of Exceptions (not recommended used by Static library!) */
 #define MAGICS_EXCEPTION 1
@@ -87,7 +87,7 @@
 #define MAGICS_GRIB 1
 
 /* Install path. */
-#define MAGICS_INSTALL_PATH "/usr/local/apps/Magics/2.18.7"
+#define MAGICS_INSTALL_PATH "/usr/local/apps/Magics/2.18.15"
 
 /* Turn on the JSON support */
 #define MAGICS_JSON 1
@@ -108,7 +108,7 @@
 #define MAGICS_METGRAM 1
 
 /* Installation used by metview */
-/* #undef MAGICS_METVIEW */
+#define MAGICS_METVIEW 1
 
 /* Name of this package. */
 #define MAGICS_NAME "Magics"
@@ -129,13 +129,13 @@
 #define MAGICS_PYTHON 1
 
 /* Turn on Qt related modules. */
-/* #undef MAGICS_QT */
+#define MAGICS_QT 1
 
 /* Turn on raster file format support (GIF&PNG) */
 #define MAGICS_RASTER 1
 
 /* Release date of this version. */
-#define MAGICS_RELEASE_DATE "05-December-2012"
+#define MAGICS_RELEASE_DATE "15-April-2013"
 
 /* Name of installation site. */
 #define MAGICS_SITE "ecmwf"
@@ -156,7 +156,7 @@
 #define MAGICS_TTF_PATH "share/magics/ttf/"
 
 /* Version of Magics. */
-#define MAGICS_VERSION "2.18.7"
+#define MAGICS_VERSION "2.18.15"
 
 /* Sets visibility flags. */
 /* #undef MAGICS_VISIBILITY */
diff --git a/src/magics_ecmwf_log.h b/src/magics_ecmwf_log.h
index d614de3..c6df40f 100644
--- a/src/magics_ecmwf_log.h
+++ b/src/magics_ecmwf_log.h
@@ -45,7 +45,7 @@ inline MAGICS_NO_EXPORT void writeMagLog(const std::string &interface)
    {
 	string id = getEnvVariable("USER"); //user-id
 
-	if(! (id=="cgm" || id=="cgs" || id=="cgi" || id=="cgk" || id=="cgr" ) )
+	if(! (id=="cgm" || id=="cgs" || id=="cgi" || id=="cgk" || id=="cgr" || id=="cgjd" ) )
 	{
 		char            host[64];
 		char            mytime[24];
diff --git a/src/oda/Makefile.in b/src/oda/Makefile.in
index 2aa8045..b7beada 100644
--- a/src/oda/Makefile.in
+++ b/src/oda/Makefile.in
@@ -154,6 +154,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -238,6 +239,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/oda/OdaDecoder.cc b/src/oda/OdaDecoder.cc
index 316ca39..fde64ba 100644
--- a/src/oda/OdaDecoder.cc
+++ b/src/oda/OdaDecoder.cc
@@ -31,9 +31,9 @@
 #include <map>
 #include <set>
 
-#include "oda.h"
+#include "odblib/oda.h"
 extern "C" {
-#include "odbcapi.h"
+#include "odblib/odbcapi.h"
 }
 
 
diff --git a/src/terralib/Makefile.in b/src/terralib/Makefile.in
index 3c2edac..baf2402 100644
--- a/src/terralib/Makefile.in
+++ b/src/terralib/Makefile.in
@@ -322,6 +322,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -406,6 +407,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/visualisers/Akima474MethodAttributes.h b/src/visualisers/Akima474MethodAttributes.h
index 05c706d..4e163cc 100644
--- a/src/visualisers/Akima474MethodAttributes.h
+++ b/src/visualisers/Akima474MethodAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/Akima760.cc b/src/visualisers/Akima760.cc
index ecbe8c9..4af3343 100644
--- a/src/visualisers/Akima760.cc
+++ b/src/visualisers/Akima760.cc
@@ -1394,19 +1394,19 @@ void Akima760::boundRow(double r, double& row1, int& index1, double& row2, int&
 	// first test if increasing!
 	if ( rows_.back() - rows_.front() > 0 ) {
 		index2 = 0;
-		while ( rows_[index2] < r ) {
+		while ( index2 < rows_.size() && rows_[index2] < r ) {
 			index2++;
 		}
-		index1 = index2-1;		
+		index1 = (index2) ? index2-1 : 0;
 		row1 = rows_[index1];
 		row2 = rows_[index2];
 	}
 	else {
 		index1 = 0;
-		while ( rows_[index1] >  r ) {
+		while ( index1 < rows_.size() && rows_[index1] >  r ) {
 			index1++;
 		}
-		index2 = index1+1;	
+		index2 = (index1 == rows_.size() -1 ) ? index1 :  index1+1;
 		row1 = rows_[index1];
 		row2 = rows_[index2];
 	}
@@ -1422,22 +1422,22 @@ void Akima760::boundColumn(double r, double& column1, int& index1, double& colum
 	if ( columns_.back() - columns_.front() > 0 )
 	{
 		index2 = 0;
-		while ( columns_[index2] < r )
+		while ( index2 < columns_.size() && columns_[index2] < r )
 		{
 				index2++;
 		}
-		index1 = index2-1;		
+		index1 = (index2) ? index2-1 : 0;
 		column1 = columns_[index1];
 		column2 = columns_[index2];
 	}
 	else {
 		index1 = 0;
-		while ( columns_[index1] >  r )
+		while (  index1 < columns_.size() && columns_[index1] >  r )
 		{
 			index1++;
 		}
-		index2 = index1+1;	
+		index2 = (index1 == columns_.size() -1 ) ? index1 : index1+1;
 		column1 = columns_[index1];
-		column2 = rows_[index2];
+		column2 = columns_[index2];
 	}
 }
diff --git a/src/visualisers/Akima760MethodAttributes.h b/src/visualisers/Akima760MethodAttributes.h
index ad7c44c..ad1219e 100644
--- a/src/visualisers/Akima760MethodAttributes.h
+++ b/src/visualisers/Akima760MethodAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/AxisAttributes.cc b/src/visualisers/AxisAttributes.cc
index 02d6f70..d40e0e0 100644
--- a/src/visualisers/AxisAttributes.cc
+++ b/src/visualisers/AxisAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "AxisAttributes.h"
diff --git a/src/visualisers/AxisAttributes.h b/src/visualisers/AxisAttributes.h
index 872311e..781aacd 100644
--- a/src/visualisers/AxisAttributes.h
+++ b/src/visualisers/AxisAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */
    
 
diff --git a/src/visualisers/AxisMethod.cc b/src/visualisers/AxisMethod.cc
index a44d3ac..0b46f28 100644
--- a/src/visualisers/AxisMethod.cc
+++ b/src/visualisers/AxisMethod.cc
@@ -126,16 +126,24 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
 	int nb = 7;
 	double step;
 	double log, ws;
+	bool horizontal = false;
 
 	double min = hyperMin_.front();
 	double max = hyperMax_.front();
-
 	double wmax = std::max(hyperMin_.front(), hyperMax_.front());
 	double wmin = std::min(hyperMin_.front(), hyperMax_.front());
+	if ( wmin==wmax) {
+		wmax = std::max(hyperMin_.back(), hyperMax_.back());
+		wmin = std::min(hyperMin_.back(), hyperMax_.back());
+		min = hyperMin_.back();
+		max = hyperMax_.back();
+		horizontal = true;
+	}
+
 	
 	if (axis.interval_ == INT_MAX ) {
 	
-		while (nb < 20) {
+		while (nb < 10) {
 			step = (wmax-wmin)/nb;
 			log = log10(step);
 			ws = pow(10., int(log));
@@ -155,18 +163,19 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
 		inc = axis.interval_;
 	}
 	std::set<double> list;
-	//list.insert(value(min));
-	//ist.insert(value(max));
 	
 	
+
     if ( min < max ) {
 		double first = floor(min/inc) *inc;
 		double last  = 0.;    
-		for (double val = first;  val <= max; val+=inc) {
+		int i = 0;
+		for (double val = first;  val <= max; val = first + (inc*i) ) {
 			if (val >= min && val <=max) {
 				list.insert(value(val));
         		last = val;
 			}
+			i++;
 		}
 		list.insert(value(last+inc));
 		
@@ -174,11 +183,13 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
 	else {
 		double first = floor(min/inc) *inc;    
 		double last  = 0.;  
-		for (double val = first;  val >= max; val-=inc) {
+		int i = 0;
+		for (double val = first;  val >= max; val = first - ( inc * i) ) {
 			if (val >= wmin && val <= wmax) {
 				list.insert(value(val));       		
         		last = val;
 			}
+			i++;
 		}
 		list.insert(value(last-inc));
 	}
@@ -192,10 +203,19 @@ void HyperAxisMethod::prepare(const Axis& axis, AxisItems& items)
     
     for (std::set<double>::iterator i = list.begin(); i != list.end(); ++i) {
     	vector<double> val;
-    	val.push_back(*i);
-    	double j = jmin+((*i)-imin)*(jw/iw);
-    	val.push_back(j);
-    	items.push_back( new AxisHyperItem(*i, val));
+    	if ( horizontal ) {
+    		val.push_back(imin);
+
+    		val.push_back(*i);
+    		items.push_back( new AxisHyperItem(*i, val));
+    	}
+    	else {
+
+        	val.push_back(*i);
+        	double j = jmin+((*i)-imin)*(jw/iw);
+        	val.push_back(j);
+        	items.push_back( new AxisHyperItem(*i, val));
+    	}
     }
 }
 
@@ -213,6 +233,7 @@ void AxisMethod::prepare(const Axis& axis, AxisItems& items)
 
 	double wmax = std::max(min, max);
 	double wmin = std::min(min, max);
+
 	bool automatic = false;
 	
 	if (axis.interval_ == INT_MAX ) {
@@ -242,23 +263,29 @@ void AxisMethod::prepare(const Axis& axis, AxisItems& items)
 	{
 		double first = floor(min/inc) *inc;
 		double last  = 0.;    
-		for (double val = first;  val <= max; val+=inc) {
+	    int i = 0;
+		for (double val = first;  val <= max; val = first + (i*inc) ) {
 			if (val >= min && val <=max) {
 				list.insert(value(val));
         		last = val;
+
 			}
+			i++;
 		}
 		list.insert(value(last+inc));
+
 	}
 	else
 	{
-		double first = floor(min/inc) *inc;    
+		double first = floor(min/inc) * inc;
 		double last  = 0.;  
-		for (double val = first;  val >= max; val-=inc) {
+		int i = 0;
+		for (double val = first;  val >= max; val = first - (i*inc)) {
 			if (val >= wmin && val <= wmax) {
 				list.insert(value(val));       		
         			last = val;
 			}
+			i++;
 		}
 		list.insert(value(last-inc));
 	}
@@ -306,6 +333,8 @@ void AxisMethod::updateX(const Transformation& transformation)
 	min_ = transformation.getMinX();
 	max_ = transformation.getMaxX();
 
+
+
 }
 
 void AxisMethod::updateY(const Transformation& transformation)
diff --git a/src/visualisers/AxisMethodAttributes.cc b/src/visualisers/AxisMethodAttributes.cc
index e2cb71e..f6dab02 100644
--- a/src/visualisers/AxisMethodAttributes.cc
+++ b/src/visualisers/AxisMethodAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "AxisMethodAttributes.h"
diff --git a/src/visualisers/Bar.cc b/src/visualisers/Bar.cc
index bd7c88e..c69d623 100644
--- a/src/visualisers/Bar.cc
+++ b/src/visualisers/Bar.cc
@@ -258,11 +258,12 @@ void GraphFlag::print(ostream& out)  const
 
 void GraphFlag::operator()(Data& data, BasicGraphicsObjectContainer& out)
 {
+	const Transformation& transformation = out.transformation();
 	CustomisedPointsList points; 
 	std::set<string> request;
 	request.insert("intensity");
 	request.insert("direction");
-	data.customisedPoints(out.transformation(), request, points, true);
+	data.customisedPoints(transformation, request, points, true);
     
     if (points.empty() ) return;
 	
@@ -292,9 +293,11 @@ void GraphFlag::operator()(Data& data, BasicGraphicsObjectContainer& out)
 			direction = (**point)["direction"];
 			if ( intensity == missing || direction == missing) 
 				continue;	
-			PaperPoint pos(x, y);
-			flags->push_back(ArrowPoint(intensity, direction, pos));
-			flags->back().set(intensity, direction);
+			UserPoint pos(x, y);
+			if ( transformation.in(pos) ) {
+				flags->push_back(ArrowPoint(intensity, direction, transformation(pos)));
+				flags->back().set(intensity, direction);
+			}
 		}
 	}
 	if ( !flags->empty() ) out.push_back(flags);	
@@ -346,11 +349,12 @@ void GraphArrow::print(ostream& out)  const
 
 void GraphArrow::operator()(Data& data, BasicGraphicsObjectContainer& out)
 {
+	const Transformation& transformation = out.transformation();
 	CustomisedPointsList points; 
 	std::set<string> request;
 	request.insert("intensity");
 	request.insert("direction");
-	data.customisedPoints(out.transformation(), request, points, true);
+	data.customisedPoints(transformation, request, points, true);
 	
 	Arrow* arrow = new Arrow();
 	arrow->setColour(*colour_); 
@@ -374,9 +378,11 @@ void GraphArrow::operator()(Data& data, BasicGraphicsObjectContainer& out)
 			direction = (**point)["direction"];
 			if ( intensity == missing || direction == missing) 
 				continue;	
-			PaperPoint pos(x, y);
-			arrow->push_back(ArrowPoint(intensity, direction, pos));
-			arrow->back().set(intensity, direction);
+			UserPoint pos(x, y);
+			if ( transformation.in(pos) ) {
+				arrow->push_back(ArrowPoint(intensity, direction, transformation(pos)));
+				arrow->back().set(intensity, direction);
+			}
 		}
 	}
 	if ( !arrow->empty() ) out.push_back(arrow);	
diff --git a/src/visualisers/BothValuePlotMethodAttributes.cc b/src/visualisers/BothValuePlotMethodAttributes.cc
index fe48572..ee9e20e 100644
--- a/src/visualisers/BothValuePlotMethodAttributes.cc
+++ b/src/visualisers/BothValuePlotMethodAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */    
 
 #include "BothValuePlotMethodAttributes.h"
diff --git a/src/visualisers/BoundariesAttributes.h b/src/visualisers/BoundariesAttributes.h
index da8fb9c..bf5ce02 100644
--- a/src/visualisers/BoundariesAttributes.h
+++ b/src/visualisers/BoundariesAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/visualisers/BoxPlotBoxAttributes.cc b/src/visualisers/BoxPlotBoxAttributes.cc
index 4509c26..10db6c8 100644
--- a/src/visualisers/BoxPlotBoxAttributes.cc
+++ b/src/visualisers/BoxPlotBoxAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "BoxPlotBoxAttributes.h"
diff --git a/src/visualisers/BoxPlotBoxBorderAttributes.cc b/src/visualisers/BoxPlotBoxBorderAttributes.cc
index 4e6b43e..ceac589 100644
--- a/src/visualisers/BoxPlotBoxBorderAttributes.cc
+++ b/src/visualisers/BoxPlotBoxBorderAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "BoxPlotBoxBorderAttributes.h"
diff --git a/src/visualisers/BoxPlotMedianAttributes.cc b/src/visualisers/BoxPlotMedianAttributes.cc
index 191d880..c88ee3d 100644
--- a/src/visualisers/BoxPlotMedianAttributes.cc
+++ b/src/visualisers/BoxPlotMedianAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "BoxPlotMedianAttributes.h"
diff --git a/src/visualisers/BoxPlotVisualiserAttributes.cc b/src/visualisers/BoxPlotVisualiserAttributes.cc
index 07a04f1..676dcd2 100644
--- a/src/visualisers/BoxPlotVisualiserAttributes.cc
+++ b/src/visualisers/BoxPlotVisualiserAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "BoxPlotVisualiserAttributes.h"
diff --git a/src/visualisers/BoxPlotWhiskerBorderAttributes.cc b/src/visualisers/BoxPlotWhiskerBorderAttributes.cc
index 421721c..e5da694 100644
--- a/src/visualisers/BoxPlotWhiskerBorderAttributes.cc
+++ b/src/visualisers/BoxPlotWhiskerBorderAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "BoxPlotWhiskerBorderAttributes.h"
diff --git a/src/visualisers/BoxPlotWhiskerBoxAttributes.cc b/src/visualisers/BoxPlotWhiskerBoxAttributes.cc
index 51c7f7d..6e4214a 100644
--- a/src/visualisers/BoxPlotWhiskerBoxAttributes.cc
+++ b/src/visualisers/BoxPlotWhiskerBoxAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "BoxPlotWhiskerBoxAttributes.h"
diff --git a/src/visualisers/BoxPlotWhiskerLineAttributes.cc b/src/visualisers/BoxPlotWhiskerLineAttributes.cc
index 13db4a5..a2dc146 100644
--- a/src/visualisers/BoxPlotWhiskerLineAttributes.cc
+++ b/src/visualisers/BoxPlotWhiskerLineAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "BoxPlotWhiskerLineAttributes.h"
diff --git a/src/visualisers/CalculateColourTechniqueAttributes.h b/src/visualisers/CalculateColourTechniqueAttributes.h
index 95c8f3b..d9005f0 100644
--- a/src/visualisers/CalculateColourTechniqueAttributes.h
+++ b/src/visualisers/CalculateColourTechniqueAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/CdfGraphAttributes.cc b/src/visualisers/CdfGraphAttributes.cc
index 2fcd359..eee0c34 100644
--- a/src/visualisers/CdfGraphAttributes.cc
+++ b/src/visualisers/CdfGraphAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "CdfGraphAttributes.h"
diff --git a/src/visualisers/CellShadingAttributes.h b/src/visualisers/CellShadingAttributes.h
index ed70501..9e0c9e2 100644
--- a/src/visualisers/CellShadingAttributes.h
+++ b/src/visualisers/CellShadingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/CoastPlottingAttributes.h b/src/visualisers/CoastPlottingAttributes.h
index 594e679..2f4e52e 100644
--- a/src/visualisers/CoastPlottingAttributes.h
+++ b/src/visualisers/CoastPlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/visualisers/CoastlinesAttributes.h b/src/visualisers/CoastlinesAttributes.h
index 4369f25..4fb7ace 100644
--- a/src/visualisers/CoastlinesAttributes.h
+++ b/src/visualisers/CoastlinesAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/visualisers/ColourTechnique.cc b/src/visualisers/ColourTechnique.cc
index 2cae036..74667c3 100644
--- a/src/visualisers/ColourTechnique.cc
+++ b/src/visualisers/ColourTechnique.cc
@@ -67,14 +67,13 @@ void ColourTechnique::prepare(const LevelSelection& levels)
     ColourTable::ColourIterator colour = table.begin(); 
     
     Colour left("NONE");
-    
- 
     Colour right = colour->colour();
+
     double min = std::numeric_limits<double>::max();
     
     double previous = 0;
     int index = 0;
-    
+    //maxLevel_ = levels.back();
     for (LevelSelection::const_iterator  val  = levels.begin();  val != levels.end(); ++val)
     {               
     	
@@ -91,22 +90,27 @@ void ColourTechnique::prepare(const LevelSelection& levels)
          left = right;            
          colour++;         
          if ( colour == table.end()) {
-         	right = Colour("NONE");
+         	right = table.back().colour();
          	colour--;
          }
          else right = colour->colour();
-         MagLog::dev() << (*this)[*val].left_ << "<" << *val << "<" << (*this)[*val].right_ << "\n";       
+
     }
     bands_.insert(make_pair(Interval(levels.back(), levels.back() + epsilon), left));
+
+    MagLog::dev() << levels.back() << "<<" << left << "<<" << levels.back() + epsilon << endl;
 } 
 
 Colour ColourTechnique::operator()(double value) const 
 {
+
     const_iterator info = find(value);
     if (info == end() ) {
+
         //MagLog::warning() << "canot find a colour for " << value << "\n";
         return Colour(-1, -1, -1);
     }
+
     return info->second.left_;
 } 
 
@@ -127,6 +131,7 @@ Colour ColourTechnique::right(double value) const
         //MagLog::warning() << "canot find a colour for " << value << "\n";
         return Colour(-1,-1,-1);
     }
+   
     return info->second.right_;
 }
 double ColourTechnique::leftRange(double value) const 
diff --git a/src/visualisers/ContinuousLegendMethodAttributes.h b/src/visualisers/ContinuousLegendMethodAttributes.h
index 07ce6d8..09607c4 100644
--- a/src/visualisers/ContinuousLegendMethodAttributes.h
+++ b/src/visualisers/ContinuousLegendMethodAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/visualisers/ContourAttributes.cc b/src/visualisers/ContourAttributes.cc
index c04806b..b02b3a1 100644
--- a/src/visualisers/ContourAttributes.cc
+++ b/src/visualisers/ContourAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "ContourAttributes.h"
diff --git a/src/visualisers/ContourAttributes.h b/src/visualisers/ContourAttributes.h
index 1ae3a56..10ba127 100644
--- a/src/visualisers/ContourAttributes.h
+++ b/src/visualisers/ContourAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/CountSelectionTypeAttributes.h b/src/visualisers/CountSelectionTypeAttributes.h
index 613b38e..25c7aa6 100644
--- a/src/visualisers/CountSelectionTypeAttributes.h
+++ b/src/visualisers/CountSelectionTypeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/visualisers/DateAxis.cc b/src/visualisers/DateAxis.cc
index 0dfe4bf..2726c27 100644
--- a/src/visualisers/DateAxis.cc
+++ b/src/visualisers/DateAxis.cc
@@ -189,8 +189,9 @@ void HyperAxis::update() const
 
 void DateAxisMethod::automatic(AxisItems& list)
 {
-
-	double days  = (to_-from_)/(24*3600);
+	DateTime min = (from_ < to_) ? from_ : to_;
+	DateTime max = (from_ < to_) ? to_ : from_;
+	double days  = (max-min)/(24*3600);
 
 	if (days > 2500 ) { // 7 Years labels!
 		hours_ = false;
@@ -236,8 +237,8 @@ void DateAxisMethod::years(AxisItems& list)
 		DateTime label;
 		DateTime tick;
 
-		const DateTime& min = from_;
-		const DateTime& max = to_;
+		DateTime min = (from_ < to_) ? from_ : to_;
+			DateTime max = (from_ < to_) ? to_ : from_;
 		long position  =  0;
 
 		int frequency;
@@ -315,8 +316,9 @@ void DateAxisMethod::months(AxisItems& list)
 	days_ = "off";
 
 
-	const DateTime& min = from_;
-	const DateTime& max = to_;
+ DateTime min = (from_ < to_) ? from_ : to_;
+	DateTime max = (from_ < to_) ? to_ : from_;
+
 	long position  =  0;
 
 	int frequency;
@@ -377,7 +379,8 @@ void DateAxisMethod::months_label(AxisItems& in, AxisItems& list)
 	formats["one"] = make_pair("%b", 1);
 	formats["full"] = make_pair("%B", -1);
 	formats["three"] = make_pair("%B", 3);
-	string last = "";
+	AxisItem* last = 0;
+	AxisItem* current = 0;
 
 	for ( AxisItems::iterator item = in.begin(); item != in.end(); ++item) {
 		AxisItem* month = (*item)->clone();
@@ -389,11 +392,17 @@ void DateAxisMethod::months_label(AxisItems& in, AxisItems& list)
 			MagLog::warning() << "could not find type " << month_composition_ << "for formatting month lables" << endl;
 			month->format("%B", 3);
 		}
-		if ( last == month->label() ) {
+		AxisItem* current = (*item)->clone();
+		current->format("%B", 3);
+		if ( last && last->label() == month->label() ) {
 			delete month;
 			continue;
 		}
-		last =  month->label();
+		if ( last ) {
+			delete last;
+		}
+		last = current;
+
 		month->colour(month_colour_->name());
 		month->level(position_);
 		month->height(month_height_);
@@ -401,6 +410,8 @@ void DateAxisMethod::months_label(AxisItems& in, AxisItems& list)
 		list.push_back(month);
 	}
 	position_++;
+	if ( last )
+		delete last;
 }
 void DateAxisMethod::days(AxisItems& list)
 {
@@ -408,8 +419,8 @@ void DateAxisMethod::days(AxisItems& list)
 	DateTime label;
 	DateTime tick;
 
-	const DateTime& min = from_;
-	const DateTime& max = to_;
+	DateTime min = (from_ < to_) ? from_ : to_;
+	DateTime max = (from_ < to_) ? to_ : from_;
 	long position  =  ( max-min  < 20*24*3600 ) ? 12 : 0;
 
 	int frequency;
@@ -520,8 +531,8 @@ void DateAxisMethod::hours(AxisItems& list)
 	DateTime label;
 	DateTime tick;
 
-	const DateTime& min = ( from_ < to_ ) ? from_ : to_;
-	const DateTime& max = ( from_ < to_ ) ? to_ : from_;
+	DateTime min = ( from_ < to_ ) ? from_ : to_;
+	DateTime max = ( from_ < to_ ) ? to_ : from_;
 
 
 	int frequency;
diff --git a/src/visualisers/DotPolyShadingMethodAttributes.h b/src/visualisers/DotPolyShadingMethodAttributes.h
index 1098635..fe5a2ed 100644
--- a/src/visualisers/DotPolyShadingMethodAttributes.h
+++ b/src/visualisers/DotPolyShadingMethodAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/EfiGraphAttributes.cc b/src/visualisers/EfiGraphAttributes.cc
index d098c89..42c0168 100644
--- a/src/visualisers/EfiGraphAttributes.cc
+++ b/src/visualisers/EfiGraphAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "EfiGraphAttributes.h"
diff --git a/src/visualisers/EpsCloudAttributes.cc b/src/visualisers/EpsCloudAttributes.cc
index 2ef2492..9f6328c 100644
--- a/src/visualisers/EpsCloudAttributes.cc
+++ b/src/visualisers/EpsCloudAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "EpsCloudAttributes.h"
diff --git a/src/visualisers/EpsGraphAttributes.cc b/src/visualisers/EpsGraphAttributes.cc
index ac382d1..bd557db 100644
--- a/src/visualisers/EpsGraphAttributes.cc
+++ b/src/visualisers/EpsGraphAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "EpsGraphAttributes.h"
diff --git a/src/visualisers/EpsPlumeAttributes.cc b/src/visualisers/EpsPlumeAttributes.cc
index 8e05a17..10cdd96 100644
--- a/src/visualisers/EpsPlumeAttributes.cc
+++ b/src/visualisers/EpsPlumeAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "EpsPlumeAttributes.h"
diff --git a/src/visualisers/EpsShadeAttributes.cc b/src/visualisers/EpsShadeAttributes.cc
index 6a10741..d76fcb3 100644
--- a/src/visualisers/EpsShadeAttributes.cc
+++ b/src/visualisers/EpsShadeAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "EpsShadeAttributes.h"
diff --git a/src/visualisers/EpsWindAttributes.cc b/src/visualisers/EpsWindAttributes.cc
index f5fefab..0c13be8 100644
--- a/src/visualisers/EpsWindAttributes.cc
+++ b/src/visualisers/EpsWindAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "EpsWindAttributes.h"
diff --git a/src/visualisers/FixedTableModeAttributes.h b/src/visualisers/FixedTableModeAttributes.h
index 668045f..9cbfc89 100644
--- a/src/visualisers/FixedTableModeAttributes.h
+++ b/src/visualisers/FixedTableModeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/visualisers/GraphShade.cc b/src/visualisers/GraphShade.cc
index 68d188a..008211c 100644
--- a/src/visualisers/GraphShade.cc
+++ b/src/visualisers/GraphShade.cc
@@ -57,8 +57,6 @@ void GraphShade::print(ostream& out)  const
 
 void GraphShade::operator()(Polyline& box)
 {
-	// Make sure the polyline is closed! 
-	box.push_back(box.front());
 
 	(*style_)(box);
 }
diff --git a/src/visualisers/GraphShadeStyle.cc b/src/visualisers/GraphShadeStyle.cc
index b3ebada..3a16792 100644
--- a/src/visualisers/GraphShadeStyle.cc
+++ b/src/visualisers/GraphShadeStyle.cc
@@ -68,39 +68,6 @@ void DotGraphShadeStyle::print(ostream& out)  const
 	DotGraphShadeStyleAttributes::print(out);
 	out << "]";
 }
-/*
-void GraphShadeStyle::operator()(Polyline* box, BasicGraphicsObjectContainer&)
-{
-	box->setFilled(true);
-	box->setFillColour(*colour_);
-	  ShadingProperties* shading = new FillShadingProperties();
-      shading->inColour_ = *colour_;
-      shading->outColour_ = Colour("NONE");
-      box->setShading(shading);
-}
-
-
-void DotGraphShadeStyle::operator()(Polyline* box, BasicGraphicsObjectContainer&)
-{
-	box->setFilled(true);
-	box->setFillColour(*colour_);
-	  ShadingProperties* shading = new DotShadingProperties();
-      shading->inColour_ = *colour_;
-      shading->outColour_ = Colour("NONE");
-      box->setShading(shading);
-      
-}
-
-void HatchGraphShadeStyle::operator()(Polyline* box, BasicGraphicsObjectContainer&)
-{
-	box->setFilled(true);
-	box->setFillColour(*colour_);
-	  ShadingProperties* shading = new HatchShadingProperties();
-      shading->inColour_ = *colour_;
-      shading->outColour_ = Colour("NONE");
-      box->setShading(shading);     
-}
-*/
 
 void GraphShadeStyle::operator()(Polyline& box)
 {
@@ -115,7 +82,9 @@ void DotGraphShadeStyle::operator()(Polyline& box)
 {
 	box.setFillColour(*colour_);
 	box.setFilled(true);
-	ShadingProperties* shading = new DotShadingProperties();
+	DotShadingProperties* shading = new DotShadingProperties();
+	shading->size_ = size_;
+	shading->density_ = density_;
 	
 	box.setShading(shading);
 }
@@ -125,7 +94,7 @@ void HatchGraphShadeStyle::operator()(Polyline& box)
 	box.setFillColour(*colour_);
 	box.setFilled(true);
 	HatchShadingProperties* shading = new HatchShadingProperties();
-	shading->index_ = 1;
+	shading->index_ = index_;
 	
 	box.setShading(shading);
 }
diff --git a/src/visualisers/GridPlottingAttributes.h b/src/visualisers/GridPlottingAttributes.h
index e4a33a9..e3f3a07 100644
--- a/src/visualisers/GridPlottingAttributes.h
+++ b/src/visualisers/GridPlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/visualisers/GridShadingAttributes.h b/src/visualisers/GridShadingAttributes.h
index 88fce64..3fea2b5 100644
--- a/src/visualisers/GridShadingAttributes.h
+++ b/src/visualisers/GridShadingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/HatchPolyShadingMethodAttributes.h b/src/visualisers/HatchPolyShadingMethodAttributes.h
index 94093a7..5c95c3e 100644
--- a/src/visualisers/HatchPolyShadingMethodAttributes.h
+++ b/src/visualisers/HatchPolyShadingMethodAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/HiLoAttributes.cc b/src/visualisers/HiLoAttributes.cc
index 48cd542..47ed2d3 100644
--- a/src/visualisers/HiLoAttributes.cc
+++ b/src/visualisers/HiLoAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */    
 
 #include "HiLoAttributes.h"
diff --git a/src/visualisers/HiLoAttributes.h b/src/visualisers/HiLoAttributes.h
index 266dfa3..504c3dc 100644
--- a/src/visualisers/HiLoAttributes.h
+++ b/src/visualisers/HiLoAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/HiLoMarkerAttributes.h b/src/visualisers/HiLoMarkerAttributes.h
index 3d683c7..002ab6a 100644
--- a/src/visualisers/HiLoMarkerAttributes.h
+++ b/src/visualisers/HiLoMarkerAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/HiLoNumberAttributes.h b/src/visualisers/HiLoNumberAttributes.h
index f94aef6..cf4479d 100644
--- a/src/visualisers/HiLoNumberAttributes.h
+++ b/src/visualisers/HiLoNumberAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/HiLoTechniqueAttributes.h b/src/visualisers/HiLoTechniqueAttributes.h
index df0c674..a118af4 100644
--- a/src/visualisers/HiLoTechniqueAttributes.h
+++ b/src/visualisers/HiLoTechniqueAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/HiLoTextAttributes.h b/src/visualisers/HiLoTextAttributes.h
index 5f1b7a0..ae54d2e 100644
--- a/src/visualisers/HiLoTextAttributes.h
+++ b/src/visualisers/HiLoTextAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/HistogramAttributes.cc b/src/visualisers/HistogramAttributes.cc
index 30bcfea..0103b81 100644
--- a/src/visualisers/HistogramAttributes.cc
+++ b/src/visualisers/HistogramAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:19 2013
 */    
 
 #include "HistogramAttributes.h"
diff --git a/src/visualisers/HistogramLegendMethodAttributes.h b/src/visualisers/HistogramLegendMethodAttributes.h
index e86fb5f..f52c07a 100644
--- a/src/visualisers/HistogramLegendMethodAttributes.h
+++ b/src/visualisers/HistogramLegendMethodAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/visualisers/ImagePlottingAttributes.h b/src/visualisers/ImagePlottingAttributes.h
index ac8df03..f5018b8 100644
--- a/src/visualisers/ImagePlottingAttributes.h
+++ b/src/visualisers/ImagePlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/visualisers/ImportPlotAttributes.h b/src/visualisers/ImportPlotAttributes.h
index 0218764..de7023c 100644
--- a/src/visualisers/ImportPlotAttributes.h
+++ b/src/visualisers/ImportPlotAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/IntervalSelectionType.cc b/src/visualisers/IntervalSelectionType.cc
index 54e87fc..e35db1b 100644
--- a/src/visualisers/IntervalSelectionType.cc
+++ b/src/visualisers/IntervalSelectionType.cc
@@ -84,24 +84,33 @@ void IntervalSelectionType::calculate(double min, double max, bool shading)
     
     
     double level = reference_;
-    while ( level <= lmax ) {
+    int i = 0;
+    while ( level < lmax && !same(level, lmax) ) {
     	if ( level > lmin )
     		levels.insert(level);
-        level += interval_;
+        level = reference_ + (i * interval_);
+        i++;
     }
     level = reference_;
-    while ( level >= lmin ) {
+    i = 1;
+    while ( level > lmin &&   !same(level, lmin) ) {
         if ( level < lmax )
         	levels.insert(level);
-        level -= interval_;
+        level = reference_ - (i * interval_);
+        i++;
     }
-           
+
+    ostringstream out;
+    out << "\nIntervalSelectionType-->[";
     for (std::set<double>::const_iterator level = levels.begin(); level != levels.end(); ++level) {
-    	MagLog::dev() << "IntervalSelectionType-->" << *level << "\n";
+    	out  << *level << ", ";
     	push_back(*level);
     }
+    out << "]" << endl;
+    MagLog::dev()  << out.str() << endl;
     	
     
+
 }
 
 
diff --git a/src/visualisers/IntervalSelectionTypeAttributes.h b/src/visualisers/IntervalSelectionTypeAttributes.h
index 7535238..9f37a2a 100644
--- a/src/visualisers/IntervalSelectionTypeAttributes.h
+++ b/src/visualisers/IntervalSelectionTypeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/visualisers/IsoHighlightAttributes.h b/src/visualisers/IsoHighlightAttributes.h
index ab17a27..243f285 100644
--- a/src/visualisers/IsoHighlightAttributes.h
+++ b/src/visualisers/IsoHighlightAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:24 2013
 */
    
 
diff --git a/src/visualisers/IsoLabelAttributes.h b/src/visualisers/IsoLabelAttributes.h
index a5324eb..ecb5edb 100644
--- a/src/visualisers/IsoLabelAttributes.h
+++ b/src/visualisers/IsoLabelAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/IsoPlot.cc b/src/visualisers/IsoPlot.cc
index 8fecd6b..91cdec6 100644
--- a/src/visualisers/IsoPlot.cc
+++ b/src/visualisers/IsoPlot.cc
@@ -153,7 +153,7 @@ public:
     void reshape(Shape* cell)
     {
         int index = cell->index_;
-        if ( index == -1 ) {
+        if ( index < 0 ) {
         	delete cell;
         	return;
         }
@@ -1209,7 +1209,8 @@ void IsoPlot::isoline(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
        if (level+1!= levels_.end() )
           range.insert(make_pair(Interval(*level, *(level+1)), r++));
        }
-      range.insert(make_pair(Interval(levels_.back(), levels_.back()+epsilon), r));
+       if ( shading_->shadingMode())
+    	   range.insert(make_pair(Interval(levels_.back(), levels_.back()+epsilon), r));
        CellArray* array = shading_->array(data, range, transformation, parent.widthResolution(), parent.heightResolution(),
 	   		resolution_, technique_);
        CellBox view(array);
@@ -1647,8 +1648,14 @@ CellArray::CellArray(MatrixHandler& data, IntervalMap<int>& range) : data_(data)
 GridArray::GridArray(MatrixHandler& data, IntervalMap<int>& range, const Transformation& transformation, int width, int height, float resol, const string& technique) : CellArray(data, range)
 {
 	Timer timer("GridArray", "GridArray");
-	rows_ = data.rows();
-	columns_ = data.columns();
+	if ( magCompare(technique, "middle") ) {
+		rows_ = data.rows();
+		columns_ = data.columns();
+	}
+	else {
+		rows_ = data.rows() -1;
+		columns_ = data.columns() -1;
+	}
 	reserve(rows_*columns_);
 	for (int row = 0; row < rows_; row++)
 		for (int column = 0; column < columns_; column++) {
@@ -1677,6 +1684,7 @@ GridCell::GridCell(const CellArray& data, int row, int column, const Transformat
 			outOfRange_ = 4;
 
 		if ( magCompare(technique, "middle")) {
+
 	        double rc1 = data.data_.column(row, column1);
 	        double crc = data.data_.column(row, column);
 	        double rc2 = data.data_.column(row, column2);
@@ -1695,6 +1703,7 @@ GridCell::GridCell(const CellArray& data, int row, int column, const Transformat
 		}
 
 		else {
+
 			columns_[0] = data.data_.column(row, column);
 			columns_[1] = data.data_.column(row, column2);
 			columns_[2] = data.data_.column(row, column2);
@@ -1706,6 +1715,7 @@ GridCell::GridCell(const CellArray& data, int row, int column, const Transformat
 			}
 
 		for (int i = 0; i < 4; i++) {
+
 			transformation.fast_reproject(columns_[i], rows_[i]);
 
 
diff --git a/src/visualisers/IsoPlotAttributes.cc b/src/visualisers/IsoPlotAttributes.cc
index a5fc461..bd9507e 100644
--- a/src/visualisers/IsoPlotAttributes.cc
+++ b/src/visualisers/IsoPlotAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "IsoPlotAttributes.h"
diff --git a/src/visualisers/IsoPlotAttributes.h b/src/visualisers/IsoPlotAttributes.h
index 018c39b..0306a39 100644
--- a/src/visualisers/IsoPlotAttributes.h
+++ b/src/visualisers/IsoPlotAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/IsoShading.h b/src/visualisers/IsoShading.h
index cb90a71..cb51292 100644
--- a/src/visualisers/IsoShading.h
+++ b/src/visualisers/IsoShading.h
@@ -76,7 +76,7 @@ public:
 	virtual bool operator()(const LevelSelection&) { return false; }
 	virtual void visit(LegendVisitor&) {} 
 	virtual void operator()(Polyline*) const {}
-	virtual void colour(double, Colour&) {}
+	virtual void colour(double, Colour&) {};
 	virtual bool needClipping() { return false;}
 	
 protected:
@@ -131,6 +131,8 @@ public:
 			if ( this->min_ <= *level && *level <= this->max_ ) 
 			          filter.push_back(*level); 
 		(*this->colourMethod_).prepare(filter); 
+		if ( !filter.empty() && ( filter.back() == filter.front() ) )
+			filter.push_back(filter.front());
 		return (*this->technique_).prepare(filter, *this->colourMethod_);
 	}
 	// returns true, if the contouring lines have to be created... False, is the shading is finished...
@@ -139,7 +141,11 @@ public:
 			(*this->technique_).visit(legend, *this->colourMethod_); }
 	virtual bool shadingMode() { return (*this->technique_).shadingMode(); }
 	virtual bool hasLegend() { return (*this->technique_).hasLegend(); }
-
+	virtual void colour(double val, Colour& colour) {
+		ColourTechnique::iterator icolour = colourMethod_->find(val);
+		if ( icolour != colourMethod_->end() )
+			colour = icolour->second.right_;
+	}
 
 protected:
 	//! Method to print string about this class on to a stream of type ostream (virtual).
diff --git a/src/visualisers/IsoShadingAttributes.cc b/src/visualisers/IsoShadingAttributes.cc
index fe38b6d..9acf4a7 100644
--- a/src/visualisers/IsoShadingAttributes.cc
+++ b/src/visualisers/IsoShadingAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "IsoShadingAttributes.h"
diff --git a/src/visualisers/IsoShadingAttributes.h b/src/visualisers/IsoShadingAttributes.h
index 9ba2b2e..a35ea52 100644
--- a/src/visualisers/IsoShadingAttributes.h
+++ b/src/visualisers/IsoShadingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/LabelPlottingAttributes.h b/src/visualisers/LabelPlottingAttributes.h
index 16c96b3..68f82d0 100644
--- a/src/visualisers/LabelPlottingAttributes.h
+++ b/src/visualisers/LabelPlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/visualisers/LegendBoxAttributes.h b/src/visualisers/LegendBoxAttributes.h
index e883da1..1934808 100644
--- a/src/visualisers/LegendBoxAttributes.h
+++ b/src/visualisers/LegendBoxAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/visualisers/LevelListSelectionTypeAttributes.h b/src/visualisers/LevelListSelectionTypeAttributes.h
index fb99f55..913d49c 100644
--- a/src/visualisers/LevelListSelectionTypeAttributes.h
+++ b/src/visualisers/LevelListSelectionTypeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/visualisers/LevelSelectionAttributes.h b/src/visualisers/LevelSelectionAttributes.h
index 6345fae..0a324ab 100644
--- a/src/visualisers/LevelSelectionAttributes.h
+++ b/src/visualisers/LevelSelectionAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/visualisers/ListColourTechniqueAttributes.h b/src/visualisers/ListColourTechniqueAttributes.h
index b81bfcf..e1b994b 100644
--- a/src/visualisers/ListColourTechniqueAttributes.h
+++ b/src/visualisers/ListColourTechniqueAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/LookupTableModeAttributes.h b/src/visualisers/LookupTableModeAttributes.h
index d84f725..e2e7e59 100644
--- a/src/visualisers/LookupTableModeAttributes.h
+++ b/src/visualisers/LookupTableModeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:15 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/visualisers/Makefile.in b/src/visualisers/Makefile.in
index 16c833c..fe1c832 100644
--- a/src/visualisers/Makefile.in
+++ b/src/visualisers/Makefile.in
@@ -363,6 +363,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -447,6 +448,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/visualisers/MarkerShadingTechniqueAttributes.h b/src/visualisers/MarkerShadingTechniqueAttributes.h
index d9d9a0a..14bc510 100644
--- a/src/visualisers/MarkerShadingTechniqueAttributes.h
+++ b/src/visualisers/MarkerShadingTechniqueAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/MetgramCurveAttributes.cc b/src/visualisers/MetgramCurveAttributes.cc
index 7cebdd0..40fa064 100644
--- a/src/visualisers/MetgramCurveAttributes.cc
+++ b/src/visualisers/MetgramCurveAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "MetgramCurveAttributes.h"
diff --git a/src/visualisers/MetgramFlagsAttributes.cc b/src/visualisers/MetgramFlagsAttributes.cc
index 800e272..39ed854 100644
--- a/src/visualisers/MetgramFlagsAttributes.cc
+++ b/src/visualisers/MetgramFlagsAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "MetgramFlagsAttributes.h"
diff --git a/src/visualisers/MetgramGraphAttributes.cc b/src/visualisers/MetgramGraphAttributes.cc
index 81f0b97..879debe 100644
--- a/src/visualisers/MetgramGraphAttributes.cc
+++ b/src/visualisers/MetgramGraphAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "MetgramGraphAttributes.h"
diff --git a/src/visualisers/NoGridPlottingAttributes.h b/src/visualisers/NoGridPlottingAttributes.h
index bbec009..9b26591 100644
--- a/src/visualisers/NoGridPlottingAttributes.h
+++ b/src/visualisers/NoGridPlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:13 2012
+    Generated: Mon Apr 15 17:55:20 2013
 */
    
 
diff --git a/src/visualisers/ObsItemFamily.cc b/src/visualisers/ObsItemFamily.cc
index 14475b0..2754d08 100644
--- a/src/visualisers/ObsItemFamily.cc
+++ b/src/visualisers/ObsItemFamily.cc
@@ -595,7 +595,7 @@ void ObsCloud::visit(std::set<string>& tokens)
 	if ( attributes_->medium_ ) tokens.insert("medium_cloud");
 	if ( attributes_->high_ ) tokens.insert("high_cloud");
 	if ( !colour_.empty() )  {
-		cout << "set cloud Colour " << colour_ << endl;
+
 		attributes_->medium_colour_ = auto_ptr<Colour>(new Colour(colour_));
 		attributes_->low_colour_ = auto_ptr<Colour>(new Colour(colour_));
 		attributes_->high_colour_ = auto_ptr<Colour>(new Colour(colour_));
@@ -784,7 +784,9 @@ void  ObsEra::visit(std::set<string>& tokens)
 
 void  ObsEra::operator()(CustomisedPoint& point,  ComplexSymbol& symbol) const
 {
-
+	CustomisedPoint::iterator pt = point.find(key_);
+	if (pt == point.end())
+		return;
 	string text = tostring(point[key_]);
 	TextItem*  object = new TextItem();
 	object->x(column_);
diff --git a/src/visualisers/ObsPlotting.cc b/src/visualisers/ObsPlotting.cc
index 2679663..30e3074 100644
--- a/src/visualisers/ObsPlotting.cc
+++ b/src/visualisers/ObsPlotting.cc
@@ -70,12 +70,13 @@ void ObsPlotting::operator()(Data& data, BasicGraphicsObjectContainer& out)
 	CustomisedPointsList values;	
 	
 	const Transformation& transformation = out.transformation();
-	data.customisedPoints(transformation, needs, values, false); // we only need the points in the area
+	bool all = false;
+	// false : we only need the points in the area
+	data.customisedPoints(transformation, needs, values, all);
 
-
-	COUNT = values.size();
 	
 
+
 	for (multimap<string, string>::const_iterator type = types.find("type"); type != types.end(); ++type)
 	{
 		try {
diff --git a/src/visualisers/ObsPlottingAttributes.h b/src/visualisers/ObsPlottingAttributes.h
index 133a3cf..0efca04 100644
--- a/src/visualisers/ObsPlottingAttributes.h
+++ b/src/visualisers/ObsPlottingAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:25 2013
 */
    
 
diff --git a/src/visualisers/PolyShadingMethod.cc b/src/visualisers/PolyShadingMethod.cc
index 36e77d5..7e52b5b 100644
--- a/src/visualisers/PolyShadingMethod.cc
+++ b/src/visualisers/PolyShadingMethod.cc
@@ -43,6 +43,8 @@ void PolyShadingMethod::operator()(Polyline& poly) const
     {
        
 		int index = poly.index();
+		if (index < 0) 
+			return;
         poly.setFilled(true);      
         poly.setStroke(false);
         poly.setFilled(true);
@@ -54,9 +56,11 @@ void PolyShadingMethod::operator()(Polyline& poly) const
 void  PolyShadingMethod::visit(LegendVisitor& legend, const ColourTechnique& colour) {
         
         MagLog::dev() << "Create legend information"  << "\n";
-       
+        LegendEntryBuilder helper(legend, colour);
         std::adjacent_find(colour.begin(), colour.end(), LegendEntryBuilder(legend, this, colour));
-     
+        if ( colour.size() == 1 ) {
+        		helper(*colour.begin(), *colour.begin());
+        	}
         legend.last(); // Flag the last entry as being the last! To get a nice labelling in countinuous mode!!!
         
     }
@@ -64,13 +68,16 @@ void  PolyShadingMethod::visit(LegendVisitor& legend, const ColourTechnique& col
 int PolyShadingMethod::index(double value)
 {
 
+
+	if ( same(value, last_) )
+		return indexes_.size() -1;
 	return indexes_.find(value, -1);
 }
 
 int PolyShadingMethod::rightIndex(double value)
 {
 	if ( same(value, first_) ) return 0;
-	if ( same(value, last_)  ) return -1;
+	if ( same(value, last_) ) return -1;
 	return indexes_.find(value, -1);
 }
 
@@ -86,14 +93,18 @@ void PolyShadingMethod::prepare(const LevelSelection& levels, const ColourTechni
 {
 
 	if (levels.empty() )return;
+	first_ = levels.front();
+	last_ =  levels.back();
 
 
 	LevelSelection::const_iterator from = levels.begin();
 	LevelSelection::const_iterator level = levels.begin();
 	level++;
 
-	first_ = levels.front();
-	last_ =  levels.back();
+
+
+	indexes_.clear();
+	colours_.clear();
 
 	int index = 0;
 	for (  ;  level != levels.end(); ++level) {
@@ -116,11 +127,15 @@ void DotPolyShadingMethod::prepare(const LevelSelection& levels, const ColourTec
 	float step = (max_density_ - min_density_)/(levels.size() - 1);
 	first_ = levels.front();
 	last_ =  levels.back();
+
 	LevelSelection::const_iterator from = levels.begin();
 	LevelSelection::const_iterator level = levels.begin();
 	level++;
 	float density = min_density_;
 	int index = 0;
+	indexes_.clear();
+	colours_.clear();
+	dots_.clear();
 	for (  ;  level != levels.end(); ++level) {
 
 		indexes_.insert(make_pair(Interval(*from, *level), index));
@@ -163,14 +178,19 @@ void HatchPolyShadingMethod::prepare(const LevelSelection& levels, const ColourT
    		MagLog::warning() << "index should be < 7--> reset to 1 "<< endl;
    		index_ = 1 ;
    	}
-   	LevelSelection::const_iterator from = levels.begin();
-   	LevelSelection::const_iterator level = levels.begin();
    	first_ = levels.front();
 	last_ =  levels.back();
-   	level++;
+
+   	LevelSelection::const_iterator from = levels.begin();
+   	LevelSelection::const_iterator level = levels.begin();
+   	indexes_.clear();
+   	colours_.clear();
+   	hatches_.clear();
+
+	level++;
    	int i = 0;
+
    	for (  ;  level != levels.end(); ++level) {
-   		cout << *from << " << " <<  colours(*from).name() << "   " << i << "  " << index << " << " <<  *level << endl;
    		indexes_.insert(make_pair(Interval(*from, *level), i));
 		colours_.push_back(colours.right(*from));
    		hatches_.push_back((index_) ? index_ : index);
diff --git a/src/visualisers/PolyShadingTechnique.cc b/src/visualisers/PolyShadingTechnique.cc
index 53a06fc..27f25aa 100644
--- a/src/visualisers/PolyShadingTechnique.cc
+++ b/src/visualisers/PolyShadingTechnique.cc
@@ -44,9 +44,13 @@ CellArray* PolyShadingTechnique::array(MatrixHandler& matrix, IntervalMap<int>&
 void GridShading::visit(LegendVisitor& legend, const ColourTechnique& colour)
 {
 	MagLog::dev() << "Create legend information"  << "\n";
+	LegendEntryBuilder helper(legend, colour);
 
-	std::adjacent_find(colour.begin(), colour.end(), LegendEntryBuilder(legend, colour));
+	std::adjacent_find(colour.begin(), colour.end(), helper);
 
+	if ( colour.size() == 1 ) {
+		helper(*colour.begin(), *colour.begin());
+	}
 	legend.last(); // Flag the last entry as being the last! To get a nice labelling in cotinuous mode!!!
 
 
diff --git a/src/visualisers/PolyShadingTechniqueAttributes.cc b/src/visualisers/PolyShadingTechniqueAttributes.cc
index bfc90f0..d2e6681 100644
--- a/src/visualisers/PolyShadingTechniqueAttributes.cc
+++ b/src/visualisers/PolyShadingTechniqueAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */    
 
 #include "PolyShadingTechniqueAttributes.h"
diff --git a/src/visualisers/PolyShadingTechniqueAttributes.h b/src/visualisers/PolyShadingTechniqueAttributes.h
index d31086e..b2251a6 100644
--- a/src/visualisers/PolyShadingTechniqueAttributes.h
+++ b/src/visualisers/PolyShadingTechniqueAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/SampleContourMethodAttributes.h b/src/visualisers/SampleContourMethodAttributes.h
index 98e590a..4c09a39 100644
--- a/src/visualisers/SampleContourMethodAttributes.h
+++ b/src/visualisers/SampleContourMethodAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:21 2013
 */
    
 
diff --git a/src/visualisers/SegmentJoiner.cc b/src/visualisers/SegmentJoiner.cc
index 9579116..2698e0f 100644
--- a/src/visualisers/SegmentJoiner.cc
+++ b/src/visualisers/SegmentJoiner.cc
@@ -518,7 +518,10 @@ double SegmentJoiner::area(const vector<Point> & poly)
 {
     double area = 0;
 
-    for(int i = 0; i < poly.size()-1; i++)
+    int nb = poly.size()-1;
+
+
+    for(int i = 0; i < nb; i++)
     {
         area += (poly[i].x_*poly[i+1].y_) -  (poly[i+1].x_*poly[i].y_) ;
     }
diff --git a/src/visualisers/SymbolIndividualModeAttributes.h b/src/visualisers/SymbolIndividualModeAttributes.h
index 07604dd..6b5e95f 100644
--- a/src/visualisers/SymbolIndividualModeAttributes.h
+++ b/src/visualisers/SymbolIndividualModeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/visualisers/SymbolTableModeAttributes.h b/src/visualisers/SymbolTableModeAttributes.h
index e2ef866..15e554c 100644
--- a/src/visualisers/SymbolTableModeAttributes.h
+++ b/src/visualisers/SymbolTableModeAttributes.h
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
 
-    Generated: Wed Dec  5 12:07:14 2012
+    Generated: Mon Apr 15 17:55:22 2013
 */
    
 
diff --git a/src/visualisers/WindPlotting.cc b/src/visualisers/WindPlotting.cc
index a1948ab..389b2b1 100644
--- a/src/visualisers/WindPlotting.cc
+++ b/src/visualisers/WindPlotting.cc
@@ -68,7 +68,7 @@ void WindPlotting::adjust( CustomisedPointsList& points, const Transformation& t
 
 	double min = *std::min_element(values.begin(), values.end());
 	double max = *std::max_element(values.begin(), values.end());
-	
+	if ( same(min, max) ) return;
 	levels_->set(*this);	
 	colourMethod_->set(*this);
 	
@@ -76,6 +76,7 @@ void WindPlotting::adjust( CustomisedPointsList& points, const Transformation& t
 	LevelSelection::const_iterator level = levels_->begin();
 	colourMethod_->prepare(*levels_);
 	Colour last;
+	map_.clear();
 	 while ( true) {
 	    	if (level+1 == levels_->end() ) break;
 	    	MagLog::debug() << "[" << *level << ", " << *(level+1) << "]=" << colourMethod_->right(*level) << endl;
diff --git a/src/web/Makefile.in b/src/web/Makefile.in
index ec83ac2..56481b4 100644
--- a/src/web/Makefile.in
+++ b/src/web/Makefile.in
@@ -160,6 +160,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -244,6 +245,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/web/ObsJSon.cc b/src/web/ObsJSon.cc
index 8a00fc2..95924cb 100644
--- a/src/web/ObsJSon.cc
+++ b/src/web/ObsJSon.cc
@@ -89,7 +89,7 @@ void ObsJSon::decode()
 	 }
 	 catch (std::exception e)
 	 {
-		 MagLog::fatal() << "Could not processed the file: " << path_ << ": " << e.what() << endl;
+		 MagLog::error() << "Could not processed the file: " << path_ << ": " << e.what() << endl;
 		 abort();
 	 }
 }
@@ -122,9 +122,19 @@ void ObsJSon::customisedPoints(const Transformation&, const std::set<string>& wh
 
 	for (vector<CustomisedPoint*>::const_iterator point = points_.begin(); point != points_.end(); ++point) {
 			out.push_back(*point);
-			cout << **point << endl;
+
 	}
 }
+void  ObsJSon::customisedPoints(const Transformation& t, const std::set<string>& n, CustomisedPointsList& out, bool all)
+{
+	decode();
+
+		for (vector<CustomisedPoint*>::const_iterator point = points_.begin(); point != points_.end(); ++point) {
+			if ( t.in((*point)->longitude(), (*point)->latitude()) )
+				out.push_back(*point);
+
+		}
+}
 
 void ObsJSon::getInfo(const std::set<string>& what, multimap<string, string>& info)
 {
diff --git a/src/web/ObsJSon.h b/src/web/ObsJSon.h
index 631f6a0..b41f126 100644
--- a/src/web/ObsJSon.h
+++ b/src/web/ObsJSon.h
@@ -54,10 +54,8 @@ public:
 	
 	void customisedPoints(const std::set<string>&, CustomisedPointsList&);
 	void customisedPoints(const Transformation&, const std::set<string>&, CustomisedPointsList& );
-	void customisedPoints(const Transformation& t, const std::set<string>& n, CustomisedPointsList& out, bool all)
-	{
-		customisedPoints(t, n, out);
-	}
+	void customisedPoints(const Transformation& t, const std::set<string>& n, CustomisedPointsList& out, bool all);
+
 	PointsHandler& points(const Transformation&, bool) { assert(false); }
 
 	virtual void set(const map<string, string>& map) 	{ ObsJSonAttributes::set(map); }
diff --git a/src/web/ObsJSonAttributes.cc b/src/web/ObsJSonAttributes.cc
index 9ebedf3..bac0f6f 100644
--- a/src/web/ObsJSonAttributes.cc
+++ b/src/web/ObsJSonAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "ObsJSonAttributes.h"
diff --git a/src/web/WrepJSonAttributes.cc b/src/web/WrepJSonAttributes.cc
index 1d60d6d..de3bb92 100644
--- a/src/web/WrepJSonAttributes.cc
+++ b/src/web/WrepJSonAttributes.cc
@@ -25,7 +25,7 @@
     This file is automatically generated.
     Do Not Edit!
    
-    Generated: Wed Dec  5 12:07:16 2012
+    Generated: Mon Apr 15 17:55:26 2013
 */    
 
 #include "WrepJSonAttributes.h"
diff --git a/src/xml/Makefile.in b/src/xml/Makefile.in
index 6066885..06db7cd 100644
--- a/src/xml/Makefile.in
+++ b/src/xml/Makefile.in
@@ -95,6 +95,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -179,6 +180,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/src/xml/graph_params.xml b/src/xml/graph_params.xml
index 209b8b4..d13882c 100644
--- a/src/xml/graph_params.xml
+++ b/src/xml/graph_params.xml
@@ -82,18 +82,18 @@
          <documentation> Colour of graph symbol </documentation>
   </parameter>
   
- <parameter name='graph_x_suppress_below' from='float' to='float' member='x_below'  default='-INT_MAX'>
+ <parameter name='graph_x_suppress_below' from='float' to='float' member='x_below'  default='LLONG_MIN'>
          <documentation> Value on the x  below which a point is considered missing </documentation>
   </parameter>
-   <parameter name='graph_x_suppress_above' from='float' to='float' member='x_above' default='INT_MAX'>
+   <parameter name='graph_x_suppress_above' from='float' to='float' member='x_above' default='LLONG_MAX'>
          <documentation> Value on the x  above which a point is considered missing </documentation>
   </parameter>
 
-  <parameter name='graph_y_suppress_below' from='float' to='float'   member='y_below' default='-INT_MAX'>
+  <parameter name='graph_y_suppress_below' from='float' to='float'   member='y_below' default='LLONG_MIN'>
          <documentation> Value on the y  below which a point is considered missing </documentation>
   </parameter>
 
-  <parameter name='graph_y_suppress_above' from='float' to='float' member='y_above'  default='INT_MAX'>
+  <parameter name='graph_y_suppress_above' from='float' to='float' member='y_above'  default='LLONG_MAX'>
          <documentation> Value on the y  above which a point is considered missing </documentation>
   </parameter>
 
@@ -212,10 +212,10 @@
          <documentation> The colour of the shaded part of bars </documentation>
   </parameter>
 </class>
-
-
+ 
+ 
 <class name='DotGraphShadeStyle'  directory='visualisers' inherits='GraphShadeStyle' include='GraphShadeStyle.h'>
-   <parameter name='graph_shade_density' from='int' to='int' member='density' xml='dot_density' default='20' implemented='no'>
+   <parameter name='graph_shade_dot_density' from='int' to='int' member='density' xml='dot_density' default='20'>
          <documentation> Density per square cm. of shading dots </documentation>
   </parameter>
 
diff --git a/test/C/Makefile.in b/test/C/Makefile.in
index 2495de8..d04cbcf 100644
--- a/test/C/Makefile.in
+++ b/test/C/Makefile.in
@@ -153,6 +153,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -237,6 +238,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/test/MagML/Makefile.in b/test/MagML/Makefile.in
index 4a32abc..5db5e0e 100644
--- a/test/MagML/Makefile.in
+++ b/test/MagML/Makefile.in
@@ -92,6 +92,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -176,6 +177,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/test/Makefile.in b/test/Makefile.in
index 3d369f3..3fe3004 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -130,6 +130,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -214,6 +215,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/test/fortran/Makefile.in b/test/fortran/Makefile.in
index 15e0c4e..cb50c95 100644
--- a/test/fortran/Makefile.in
+++ b/test/fortran/Makefile.in
@@ -143,6 +143,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -227,6 +228,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/test/python/Makefile.in b/test/python/Makefile.in
index a25d57c..56086f5 100644
--- a/test/python/Makefile.in
+++ b/test/python/Makefile.in
@@ -92,6 +92,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -176,6 +177,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 0a4f4ac..bbf2058 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -114,6 +114,7 @@ ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EMOS_LIB_NAME = @EMOS_LIB_NAME@
+EMOS_LIB_PATH = @EMOS_LIB_PATH@
 EXEEXT = @EXEEXT@
 F77 = @F77@
 FFLAGS = @FFLAGS@
@@ -198,6 +199,7 @@ SHELL = @SHELL@
 SHLIB_EXT = @SHLIB_EXT@
 SITE_NAME = @SITE_NAME@
 STRIP = @STRIP@
+SWIG = @SWIG@
 UIC = @UIC@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
diff --git a/version.sh b/version.sh
index 3baea24..5cfc1b3 100644
--- a/version.sh
+++ b/version.sh
@@ -2,9 +2,9 @@
 # Package name and versioning information for Magics
 #
 MAGICS_PACKAGE_NAME='Magics'
-MAGICS_PACKAGE_VERSION='2.18.7'
-MAGICS_PACKAGE_COPYRIGHT_YEAR='2012'
-MAGICS_PACKAGE_COPYRIGHT_PERIOD='2007-2012'
+MAGICS_PACKAGE_VERSION='2.18.15'
+MAGICS_PACKAGE_COPYRIGHT_YEAR='2013'
+MAGICS_PACKAGE_COPYRIGHT_PERIOD='2007-2013'
 MAGICS_PACKAGE_RELEASE_DATE=`date +%d-%B-%Y`
 #
 #

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



More information about the debian-science-commits mailing list