[magics] 01/01: upstream 2.29.6
Alastair McKinstry
mckinstry at moszumanska.debian.org
Sat Oct 29 17:17:45 UTC 2016
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to tag upstream/2.29.6
in repository magics.
commit bb9c3eef350af21180fd2bbae1c3b59178f84444
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Sun Oct 23 12:37:55 2016 +0100
upstream 2.29.6
---
CMakeLists.txt | 10 +-
LICENSE_for_source_files | 21 +-
VERSION.cmake | 4 +-
cmake/FindAEC.cmake | 31 +-
cmake/FindMKL.cmake | 7 +-
cmake/FindOpenJPEG.cmake | 16 +-
cmake/VERSION.cmake | 4 +-
cmake/compiler_flags/Cray_C.cmake | 11 +-
cmake/compiler_flags/Cray_CXX.cmake | 11 +-
cmake/compiler_flags/Cray_Fortran.cmake | 12 +-
.../contrib/GreatCMakeCookOff/AddCPP11Flags.cmake | 5 +-
.../GreatCMakeCookOff/CheckCXX11Features.cmake | 125 ++--
cmake/ecbuild_add_executable.cmake | 64 +-
cmake/ecbuild_add_fortran_flags.cmake | 11 +-
cmake/ecbuild_add_library.cmake | 64 +-
cmake/ecbuild_add_option.cmake | 53 +-
cmake/ecbuild_add_test.cmake | 21 +-
cmake/ecbuild_bundle.cmake | 8 +-
cmake/ecbuild_check_cxx11.cmake | 11 +-
cmake/ecbuild_check_fortran.cmake | 126 ++++
cmake/ecbuild_check_fortran_source_return.cmake | 13 +-
cmake/ecbuild_check_functions.cmake | 9 +
cmake/ecbuild_compiler_flags.cmake | 154 +++-
cmake/ecbuild_config.h.in | 6 +
cmake/ecbuild_declare_project.cmake | 47 +-
cmake/ecbuild_download_resource.cmake | 1 +
cmake/ecbuild_find_python.cmake | 149 ++--
cmake/ecbuild_generate_fortran_interfaces.cmake | 2 +-
cmake/ecbuild_get_cxx11_flags.cmake | 9 +-
cmake/ecbuild_get_test_data.cmake | 1 +
cmake/ecbuild_install_project.cmake | 58 +-
cmake/ecbuild_log.cmake | 21 +-
cmake/ecbuild_pkgconfig.cmake | 2 +-
cmake/ecbuild_print_summary.cmake | 8 +-
cmake/ecbuild_remove_fortran_flags.cmake | 5 +-
cmake/ecbuild_separate_sources.cmake | 24 +-
cmake/ecbuild_source_flags.cmake | 6 +-
cmake/ecbuild_system.cmake | 2 +
cmake/ecbuild_target_flags.cmake | 91 +++
cmake/ecbuild_use_package.cmake | 1 +
cmake/fortran_features/CheckFortranFeatures.cmake | 167 +++++
cmake/fortran_features/c_size_t.F90 | 8 +
cmake/fortran_features/c_sizeof.F90 | 3 +
cmake/fortran_features/derivedtype_interface.F90 | 54 ++
cmake/fortran_features/derivedtype_io.F90 | 42 ++
cmake/fortran_features/finalization.F90 | 141 ++++
cmake/fortran_features/submodules.F90 | 35 +
magics.sublime-project | 2 +-
python/CMakeLists.txt | 28 +-
python/{Magics => }/Magics.i.in | 0
python/Magics/CMakeLists.txt | 61 --
python/Magics/__init__.py | 1 +
python/Magics/setup.py.in | 83 ---
python/{Magics => }/Magics_interface.cc | 0
python/{Magics => }/numpy.i | 2 +-
python/setup.py.in | 33 +
share/ecbuild/toolchains/ecmwf-XC30-Cray.cmake | 7 -
share/ecbuild/toolchains/ichec-fionn-Intel.cmake | 67 ++
.../10m/ne_10m_admin_0_boundary_lines_land.dbf | Bin 260057 -> 260057 bytes
.../110m/ne_110m_admin_0_boundary_lines_land.dbf | Bin 29946 -> 29946 bytes
.../50m/ne_50m_admin_0_boundary_lines_land.dbf | Bin 107049 -> 107049 bytes
share/magics/epsg.json | 6 +-
share/magics/table_128.xml | 7 +
src/CMakeLists.txt | 2 +-
src/basic/LegendVisitor.cc | 110 ++-
src/basic/LegendVisitor.h | 23 +-
src/common/Arrow.h | 26 +-
src/common/ArrowProperties.cc | 26 +-
src/common/ArrowProperties.h | 26 +-
src/common/AutoLock.h | 26 +-
src/common/AutoLocker.cc | 26 +-
src/common/AutomaticPlotManager.cc | 26 +-
src/common/AutomaticPlotManager.h | 26 +-
src/common/BackgroundColour.h | 26 +-
src/common/BaseParameter.cc | 26 +-
src/common/BaseParameter.h | 26 +-
src/common/BasePointsHandler.cc | 26 +-
src/common/BasePointsHandler.h | 26 +-
src/common/CartesianTransformation.cc | 26 +-
src/common/CartesianTransformation.h | 26 +-
src/common/Clipper.h | 26 +-
src/common/Colour.cc | 26 +-
src/common/Colour.h | 26 +-
src/common/ColourTable.cc | 26 +-
src/common/ColourTable.h | 26 +-
src/common/ColourTableDefinition.h | 26 +-
src/common/ColourTableDefinitionCompute.cc | 26 +-
src/common/ColourTableDefinitionCompute.h | 26 +-
src/common/ColourTableDefinitionComputeInterface.h | 26 +-
src/common/ColourTableDefinitionList.cc | 26 +-
src/common/ColourTableDefinitionList.h | 26 +-
src/common/ColourTableDefinitionListInterface.h | 26 +-
src/common/Coordinate.cc | 26 +-
src/common/Coordinate.h | 26 +-
src/common/CustomisedPoint.h | 26 +-
src/common/Data.cc | 26 +-
src/common/Data.h | 30 +-
src/common/DataStats.cc | 26 +-
src/common/DataStats.h | 27 +-
src/common/Decoder.h | 26 +-
src/common/Dimension.cc | 26 +-
src/common/Dimension.h | 26 +-
src/common/DriverStatic.cc | 26 +-
src/common/DriverStatic.h | 26 +-
src/common/Factory.cc | 26 +-
src/common/Factory.h | 26 +-
src/common/Flag.cc | 26 +-
src/common/Flag.h | 26 +-
src/common/Frame.cc | 26 +-
src/common/Frame.h | 26 +-
src/common/FrameBase.cc | 26 +-
src/common/FrameBase.h | 26 +-
src/common/FullPaperPoint.h | 26 +-
src/common/GeoPoint.h | 26 +-
src/common/GeoRectangularProjection.cc | 28 +-
src/common/GeoRectangularProjection.h | 28 +-
src/common/GribInterpretor.h | 28 +-
src/common/HeightTableDefinition.h | 26 +-
src/common/Image.h | 26 +-
src/common/ImageProperties.h | 26 +-
src/common/ImportObject.cc | 26 +-
src/common/ImportObject.h | 26 +-
src/common/InteractiveSet.cc | 26 +-
src/common/InteractiveSet.h | 26 +-
src/common/IntervalMap.h | 26 +-
src/common/Label.cc | 26 +-
src/common/Label.h | 26 +-
src/common/Layout.cc | 26 +-
src/common/Layout.h | 26 +-
src/common/LevelTableDefinition.h | 26 +-
src/common/LogoPlotting.cc | 26 +-
src/common/LogoPlotting.h | 26 +-
src/common/LogoPlottingBase.h | 26 +-
src/common/MagException.cc | 26 +-
src/common/MagException.h | 26 +-
src/common/MagExceptions.cc | 26 +-
src/common/MagExceptions.h | 26 +-
src/common/MagFont.cc | 26 +-
src/common/MagFont.h | 26 +-
src/common/MagLog.cc | 26 +-
src/common/MagLog.h | 26 +-
src/common/MagTranslator.h | 26 +-
src/common/MagicsCalls.cc | 26 +-
src/common/MagicsFormat.cc | 51 +-
src/common/MagicsFormat.h | 33 +-
src/common/MagicsParameter.cc | 26 +-
src/common/MagicsParameter.h | 26 +-
src/common/MagicsSingleton.h | 27 +-
src/common/MagicsThreads.cc | 26 +-
src/common/MagicsThreads.h | 26 +-
src/common/Matrix.cc | 41 +-
src/common/Matrix.h | 26 +-
src/common/MatrixHandler.h | 53 +-
src/common/MetaData.cc | 26 +-
src/common/MetaData.h | 26 +-
src/common/Mutex.cc | 26 +-
src/common/Mutex.h | 26 +-
src/common/MutexCond.cc | 26 +-
src/common/MutexCond.h | 42 +-
src/common/Node.cc | 26 +-
src/common/Node.h | 26 +-
src/common/OutputFactory.cc | 26 +-
src/common/OutputFactory.h | 26 +-
src/common/OutputHandler.cc | 26 +-
src/common/OutputHandler.h | 26 +-
src/common/PageID.cc | 26 +-
src/common/PageID.h | 26 +-
src/common/PageIDBase.h | 26 +-
src/common/PaperDimension.h | 26 +-
src/common/PaperPoint.h | 26 +-
src/common/ParameterManager.cc | 26 +-
src/common/ParameterManager.h | 26 +-
src/common/Path.h | 26 +-
src/common/PlotManager.cc | 26 +-
src/common/PlotManager.h | 26 +-
src/common/PointsHandler.cc | 26 +-
src/common/PointsHandler.h | 26 +-
src/common/PolarStereographicProjection.cc | 28 +-
src/common/PolarStereographicProjection.h | 28 +-
src/common/PolyCoast.h | 27 +-
src/common/Polyline.cc | 26 +-
src/common/Polyline.h | 26 +-
src/common/ProgressObject.cc | 26 +-
src/common/ProgressObject.h | 26 +-
src/common/ProgressTask.cc | 26 +-
src/common/ProgressTask.h | 26 +-
src/common/Proj4Projection.cc | 28 +-
src/common/Proj4Projection.h | 28 +-
src/common/RasterData.cc | 26 +-
src/common/RasterData.h | 26 +-
src/common/SciMethods.cc | 28 +-
src/common/SciMethods.h | 28 +-
src/common/Seconds.cc | 29 +-
src/common/Seconds.h | 26 +-
src/common/Static.cc | 26 +-
src/common/Static.h | 26 +-
src/common/Symbol.cc | 26 +-
src/common/Symbol.h | 26 +-
src/common/TableDefinition.h | 26 +-
src/common/TableDefinitionCompute.cc | 26 +-
src/common/TableDefinitionCompute.h | 26 +-
src/common/TableDefinitionComputeInterface.h | 26 +-
src/common/TableDefinitionList.cc | 26 +-
src/common/TableDefinitionList.h | 26 +-
src/common/TableDefinitionListInterface.h | 26 +-
src/common/Task.cc | 26 +-
src/common/Task.h | 26 +-
src/common/TaylorProjection.cc | 28 +-
src/common/TaylorProjection.h | 28 +-
src/common/Tephigram.cc | 28 +-
src/common/Tephigram.h | 28 +-
src/common/Text.cc | 26 +-
src/common/Text.h | 26 +-
src/common/Thread.cc | 26 +-
src/common/Thread.h | 26 +-
src/common/ThreadControler.cc | 26 +-
src/common/ThreadControler.h | 26 +-
src/common/ThreadSingleton.cc | 26 +-
src/common/ThreadSingleton.h | 26 +-
src/common/Timer.cc | 26 +-
src/common/Timer.h | 26 +-
src/common/Tokenizer.cc | 26 +-
src/common/Tokenizer.h | 26 +-
src/common/Transformation.cc | 13 -
src/common/Transformation.h | 26 +-
src/common/UserPoint.h | 26 +-
src/common/Visualiser.h | 26 +-
src/common/XCoordinate.h | 26 +-
src/common/XmlNode.cc | 26 +-
src/common/XmlNode.h | 26 +-
src/common/XmlReader.cc | 26 +-
src/common/XmlReader.h | 26 +-
src/common/XmlTree.cc | 26 +-
src/common/XmlTree.h | 26 +-
src/common/YCoordinate.h | 26 +-
src/common/aix.h | 26 +-
src/common/linux.h | 26 +-
src/common/magics_api.h | 26 +-
src/common/marsmachine.h | 26 +-
src/decoders/Netcdf.cc | 7 +-
src/decoders/Netcdf.h | 10 +-
src/decoders/NetcdfDecoder.cc | 9 +
src/decoders/NetcdfDecoder.h | 2 +
src/decoders/NetcdfGeoMatrixInterpretor.cc | 2 +-
src/drivers/CairoDriver.cc | 14 +-
src/drivers/PostScriptDriver.cc | 36 +
src/oda/OdaDecoder.cc | 2 -
src/params/Curve.xml | 55 +-
src/params/EpsGraph.xml | 5 +
src/params/FortranViewNode.xml | 9 +-
src/params/HiLoNumber.xml | 7 +-
src/params/HiLoTechnique.xml | 6 +
src/params/NetcdfDecoder.xml | 7 +-
src/params/SimplePolyline.xml | 1 -
src/visualisers/Akima474.cc | 26 +-
src/visualisers/Akima474Method.h | 26 +-
src/visualisers/Akima760.cc | 26 +-
src/visualisers/Akima760Method.cc | 26 +-
src/visualisers/Akima760Method.h | 26 +-
src/visualisers/Akima761.cc | 26 +-
src/visualisers/Akima761Method.cc | 26 +-
src/visualisers/Akima761Method.h | 26 +-
src/visualisers/ArrowPlotting.cc | 26 +-
src/visualisers/ArrowPlotting.h | 26 +-
src/visualisers/AutomaticContourMethod.h | 26 +-
src/visualisers/Axis.cc | 30 +-
src/visualisers/Axis.h | 26 +-
src/visualisers/AxisControl.cc | 26 +-
src/visualisers/AxisControl.h | 26 +-
src/visualisers/AxisGrid.cc | 26 +-
src/visualisers/AxisGrid.h | 26 +-
src/visualisers/AxisItem.cc | 26 +-
src/visualisers/AxisItem.h | 26 +-
src/visualisers/AxisLine.cc | 26 +-
src/visualisers/AxisLine.h | 26 +-
src/visualisers/AxisMethod.cc | 26 +-
src/visualisers/AxisMethod.h | 26 +-
src/visualisers/AxisMinorTick.cc | 26 +-
src/visualisers/AxisMinorTick.h | 26 +-
src/visualisers/AxisTick.cc | 26 +-
src/visualisers/AxisTick.h | 26 +-
src/visualisers/AxisTickLabelType.cc | 26 +-
src/visualisers/AxisTickLabelType.h | 26 +-
src/visualisers/AxisType.cc | 26 +-
src/visualisers/AxisType.h | 26 +-
src/visualisers/Bar.cc | 26 +-
src/visualisers/Bar.h | 26 +-
src/visualisers/BothValuePlotMethod.h | 26 +-
src/visualisers/Boundaries.cc | 26 +-
src/visualisers/Boundaries.h | 26 +-
src/visualisers/BoxPlotBasicItem.h | 26 +-
src/visualisers/BoxPlotItem.cc | 26 +-
src/visualisers/BoxPlotItem.h | 26 +-
src/visualisers/BoxPlotVisualiser.cc | 26 +-
src/visualisers/BoxPlotVisualiser.h | 26 +-
src/visualisers/CalculateColourTechnique.cc | 26 +-
src/visualisers/CalculateColourTechnique.h | 26 +-
src/visualisers/CalmIndicator.h | 26 +-
src/visualisers/CellShading.cc | 26 +-
src/visualisers/CellShading.h | 26 +-
src/visualisers/Cities.cc | 26 +-
src/visualisers/Cities.h | 26 +-
src/visualisers/CoastPlotting.cc | 26 +-
src/visualisers/CoastPlotting.h | 26 +-
src/visualisers/Coastlines.cc | 26 +-
src/visualisers/Coastlines.h | 26 +-
src/visualisers/ColourSelection.cc | 26 +-
src/visualisers/ColourSelection.h | 26 +-
src/visualisers/ColourSelectionCount.cc | 26 +-
src/visualisers/ColourSelectionCount.h | 26 +-
src/visualisers/ColourSelectionList.cc | 26 +-
src/visualisers/ColourSelectionList.h | 26 +-
src/visualisers/ColourTechnique.cc | 26 +-
src/visualisers/ColourTechnique.h | 26 +-
src/visualisers/Contour.cc | 48 +-
src/visualisers/Contour.h | 26 +-
src/visualisers/ContourMethod.h | 26 +-
src/visualisers/CountSelectionType.cc | 26 +-
src/visualisers/CountSelectionType.h | 26 +-
src/visualisers/Curve.cc | 109 ++-
src/visualisers/Curve.h | 35 +-
src/visualisers/DateAxis.cc | 26 +-
src/visualisers/DateAxis.h | 26 +-
src/visualisers/DefinitionTable.h | 26 +-
src/visualisers/DefinitionTable.hcc | 26 +-
src/visualisers/DotPolyShadingMethod.h | 26 +-
src/visualisers/EpsForecastPlot.h | 26 +-
src/visualisers/EpsGraph.cc | 94 +--
src/visualisers/EpsGraph.h | 26 +-
src/visualisers/EquidistantTableMode.cc | 26 +-
src/visualisers/EquidistantTableMode.h | 26 +-
src/visualisers/Filter.cc | 26 +-
src/visualisers/Filter.h | 26 +-
src/visualisers/FlagPlotting.cc | 26 +-
src/visualisers/FlagPlotting.h | 26 +-
src/visualisers/FloatSelection.cc | 26 +-
src/visualisers/FloatSelection.h | 26 +-
src/visualisers/Graph.h | 26 +-
src/visualisers/GraphPlotting.cc | 26 +-
src/visualisers/GraphPlotting.h | 26 +-
src/visualisers/GraphShade.cc | 26 +-
src/visualisers/GraphShade.h | 26 +-
src/visualisers/GraphShadeStyle.cc | 26 +-
src/visualisers/GraphShadeStyle.h | 26 +-
src/visualisers/GribTables.h | 26 +-
src/visualisers/GridPlotting.cc | 26 +-
src/visualisers/GridPlotting.h | 26 +-
src/visualisers/HatchPolyShadingMethod.h | 26 +-
src/visualisers/HeightSelection.cc | 26 +-
src/visualisers/HeightSelection.h | 26 +-
src/visualisers/HeightSelectionCount.h | 26 +-
src/visualisers/HeightSelectionList.h | 26 +-
src/visualisers/HeightTechnique.cc | 26 +-
src/visualisers/HeightTechnique.h | 26 +-
src/visualisers/HiLo.cc | 26 +-
src/visualisers/HiLo.h | 26 +-
src/visualisers/HiLoBase.h | 26 +-
src/visualisers/HiLoBoth.h | 82 ++-
src/visualisers/HiLoMarker.h | 26 +-
src/visualisers/HiLoMarkerBase.h | 26 +-
src/visualisers/HiLoNumber.h | 26 +-
src/visualisers/HiLoTechnique.h | 26 +-
src/visualisers/HiLoText.h | 26 +-
src/visualisers/HistoIndividualMode.h | 26 +-
src/visualisers/HistoMode.h | 26 +-
src/visualisers/HistoTableMode.h | 26 +-
src/visualisers/Histogram.cc | 26 +-
src/visualisers/Histogram.h | 26 +-
src/visualisers/ImageCalculateColourTechnique.h | 26 +-
src/visualisers/ImageListColourTechnique.h | 26 +-
src/visualisers/ImportPlot.h | 26 +-
src/visualisers/IntervalSelectionType.cc | 26 +-
src/visualisers/IntervalSelectionType.h | 26 +-
src/visualisers/Intervals.h | 26 +-
src/visualisers/IsoHighlight.h | 26 +-
src/visualisers/IsoLabel.cc | 26 +-
src/visualisers/IsoLabel.h | 26 +-
src/visualisers/IsoPlot.cc | 169 +++--
src/visualisers/IsoPlot.h | 26 +-
src/visualisers/IsoShading.cc | 26 +-
src/visualisers/IsoShading.h | 26 +-
src/visualisers/LabelPlotting.cc | 26 +-
src/visualisers/LabelPlotting.h | 26 +-
src/visualisers/LabelPlottingBase.h | 26 +-
src/visualisers/LegendMethod.cc | 48 +-
src/visualisers/LegendMethod.h | 26 +-
src/visualisers/LevelListSelectionType.cc | 26 +-
src/visualisers/LevelListSelectionType.h | 26 +-
src/visualisers/LevelSelection.cc | 26 +-
src/visualisers/LevelSelection.h | 26 +-
src/visualisers/LinearTableMode.cc | 26 +-
src/visualisers/LinearTableMode.h | 26 +-
src/visualisers/ListColourTechnique.cc | 26 +-
src/visualisers/ListColourTechnique.h | 26 +-
src/visualisers/LookupTableMode.cc | 26 +-
src/visualisers/LookupTableMode.h | 26 +-
src/visualisers/MarkerSelection.h | 26 +-
src/visualisers/MarkerSelectionCount.h | 26 +-
src/visualisers/MarkerSelectionList.h | 26 +-
src/visualisers/MarkerShadingTechnique.cc | 26 +-
src/visualisers/MarkerShadingTechnique.h | 26 +-
src/visualisers/MarkerValuePlotMethod.h | 26 +-
src/visualisers/MetgramGraph.cc | 26 +-
src/visualisers/MetgramGraph.h | 26 +-
src/visualisers/MetgramStyle.cc | 26 +-
src/visualisers/MetgramStyle.h | 26 +-
src/visualisers/NormalTableMode.cc | 26 +-
src/visualisers/NormalTableMode.h | 26 +-
src/visualisers/ObsItem.h | 26 +-
src/visualisers/ObsItemFamily.cc | 109 ++-
src/visualisers/ObsItemFamily.h | 56 +-
src/visualisers/ObsPlotting.cc | 29 +-
src/visualisers/ObsPlotting.h | 26 +-
src/visualisers/ObsTable.cc | 26 +-
src/visualisers/ObsTable.h | 26 +-
src/visualisers/OriginMarker.h | 26 +-
src/visualisers/OutLayerTechnique.cc | 26 +-
src/visualisers/OutLayerTechnique.h | 26 +-
src/visualisers/PolyShadingMethod.cc | 26 +-
src/visualisers/PolyShadingMethod.h | 26 +-
src/visualisers/PolyShadingTechnique.cc | 26 +-
src/visualisers/PolyShadingTechnique.h | 26 +-
src/visualisers/ShadingTechnique.h | 26 +-
src/visualisers/SimplePolylineVisualiser.cc | 26 +-
src/visualisers/SimplePolylineVisualiser.h | 26 +-
src/visualisers/Streamlines.cc | 28 +-
src/visualisers/Streamlines.h | 26 +-
src/visualisers/SymbolAdvancedTableMode.cc | 26 +-
src/visualisers/SymbolAdvancedTableMode.h | 26 +-
src/visualisers/SymbolMode.cc | 26 +-
src/visualisers/SymbolMode.h | 30 +-
src/visualisers/SymbolPlotting.cc | 26 +-
src/visualisers/SymbolPlotting.h | 26 +-
src/visualisers/TaylorGrid.cc | 26 +-
src/visualisers/TaylorGrid.h | 26 +-
src/visualisers/TephiGrid.cc | 26 +-
src/visualisers/TephiGrid.h | 26 +-
src/visualisers/TextOrientation.cc | 26 +-
src/visualisers/TextOrientation.h | 26 +-
src/visualisers/UserDate.cc | 26 +-
src/visualisers/UserDate.h | 26 +-
src/visualisers/ValuePlot.cc | 26 +-
src/visualisers/ValuePlot.h | 26 +-
src/visualisers/ValuePlotBase.h | 26 +-
src/visualisers/ValuePlotMethod.h | 26 +-
src/visualisers/VisDefInfo.h | 26 +-
src/visualisers/Wind.cc | 26 +-
src/visualisers/Wind.h | 26 +-
src/visualisers/WindPlotting.cc | 26 +-
src/visualisers/WindPlotting.h | 26 +-
src/web/MagJSon.cc | 12 +
src/web/MagJSon.h | 4 +-
tools/CMakeLists.txt | 1 -
tools/magicsCompatibilityChecker | 3 +-
tools/mapgen_clip | 5 +-
tools/xml2cc.pl | 492 ++++++-------
tools/xml2cc.pl.workshop | 7 +-
tools/xml2cc_new.pl | 792 ---------------------
tools/xml2mv.pl | 14 +-
459 files changed, 5633 insertions(+), 8211 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1706874..2c8adc1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -91,11 +91,7 @@ ecbuild_add_option( FEATURE SPOT
ecbuild_add_option( FEATURE PYTHON
DEFAULT ON
DESCRIPTION "enable python interface"
- REQUIRED_PACKAGES Python SWIG NumPy )
-
-if( HAVE_PYTHON )
- include(UseSWIG)
-endif()
+ REQUIRED_PACKAGES "Python NO_LIBS" SWIG NumPy )
ecbuild_add_option( FEATURE FORTRAN
DEFAULT ON
@@ -136,11 +132,11 @@ set( MAGICS_EXCEPTION "ON" )
set( MAGICS_SITE "ecmwf" )
set( MAGICS_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} )
-set( MAGICS_REFERENCE_VERSIONS "2.29.1" )
+set( MAGICS_REFERENCE_VERSIONS "2.29.3" )
set( MAGICS_HTML_ROOT "${CMAKE_BINARY_DIR}/regression/html")
file(MAKE_DIRECTORY ${MAGICS_HTML_ROOT} )
-set( MAG_PYTHON_PATH ${CMAKE_BINARY_DIR}/python )
+set( MAG_PYTHON_PATH ${CMAKE_CURRENT_BINARY_DIR}/python )
###############################################################################
# projects
diff --git a/LICENSE_for_source_files b/LICENSE_for_source_files
index 67b44cc..2f634dc 100644
--- a/LICENSE_for_source_files
+++ b/LICENSE_for_source_files
@@ -1,14 +1,7 @@
-
-Copyright 2007 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.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
\ No newline at end of file
diff --git a/VERSION.cmake b/VERSION.cmake
index cf6bbc4..aae0b62 100644
--- a/VERSION.cmake
+++ b/VERSION.cmake
@@ -6,9 +6,9 @@
# granted to it by virtue of its status as an intergovernmental organisation nor
# does it submit to any jurisdiction.
+set ( metabuilder_version 2.29.6 )
+set ( _version 2.29.6 )
-set ( metabuilder_version 2.29.4 )
-set ( _version 2.29.4 )
if ( MAGICS_BUILD )
set( ${PROJECT_NAME}_VERSION_STR "${_version}-${MAGICS_BUILD}" )
else ()
diff --git a/cmake/FindAEC.cmake b/cmake/FindAEC.cmake
index 767544f..717b2b5 100644
--- a/cmake/FindAEC.cmake
+++ b/cmake/FindAEC.cmake
@@ -3,24 +3,31 @@
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
-# granted to it by virtue of its status as an intergovernmental organisation nor
-# does it submit to any jurisdiction.
+# granted to it by virtue of its status as an intergovernmental organisation
+# nor does it submit to any jurisdiction.
# - Try to find AEC (Adaptive Entropy Coding library)
# See https://www.dkrz.de/redmine/projects/aec/wiki
# Once done this will define
-# AEC_FOUND - System has AEC
+# AEC_FOUND - System has AEC
# AEC_INCLUDE_DIRS - The AEC include directories
-# AEC_LIBRARIES - The libraries needed to use AEC
-
-if( DEFINED AEC_PATH )
- find_path( AEC_INCLUDE_DIR szlib.h PATHS ${AEC_PATH}/include PATH_SUFFIXES aec NO_DEFAULT_PATH )
- find_library( AEC_LIBRARY NAMES aec PATHS ${AEC_PATH}/lib PATH_SUFFIXES aec NO_DEFAULT_PATH )
-endif()
-
-find_path( AEC_INCLUDE_DIR szlib.h PATH_SUFFIXES aec )
-find_library( AEC_LIBRARY NAMES aec PATH_SUFFIXES aec )
+# AEC_LIBRARIES - The libraries needed to use AEC
+#
+# The following paths will be searched with priority if set in CMake or env
+#
+# AEC_DIR - prefix path of the AEC installation
+# AEC_PATH - prefix path of the AEC installation
+
+find_path( AEC_INCLUDE_DIR szlib.h
+ PATHS ${AEC_DIR} ${AEC_PATH} ENV AEC_DIR ENV AEC_PATH
+ PATH_SUFFIXES include include/aec NO_DEFAULT_PATH )
+find_path( AEC_INCLUDE_DIR szlib.h PATH_SUFFIXES include include/aec )
+
+find_library( AEC_LIBRARY NAMES aec
+ PATHS ${AEC_DIR} ${AEC_PATH} ENV AEC_DIR ENV AEC_PATH
+ PATH_SUFFIXES lib lib64 lib/aec lib64/aec NO_DEFAULT_PATH )
+find_library( AEC_LIBRARY NAMES aec PATH_SUFFIXES lib lib64 lib/aec lib64/aec )
set( AEC_LIBRARIES ${AEC_LIBRARY} )
set( AEC_INCLUDE_DIRS ${AEC_INCLUDE_DIR} )
diff --git a/cmake/FindMKL.cmake b/cmake/FindMKL.cmake
index 1123234..5941179 100644
--- a/cmake/FindMKL.cmake
+++ b/cmake/FindMKL.cmake
@@ -15,6 +15,7 @@
#
# The following paths will be searched with priority if set in CMake or env
#
+# MKLROOT - root directory of the MKL installation
# MKL_PATH - root directory of the MKL installation
# MKL_ROOT - root directory of the MKL installation
@@ -34,9 +35,9 @@ else()
endif()
-# Search with priority for MKL_ROOT and MKL_PATH if set in CMake or env
+# Search with priority for MKLROOT, MKL_PATH and MKL_ROOT if set in CMake or env
find_path(MKL_INCLUDE_DIR mkl.h
- PATHS ${MKL_PATH} ${MKL_ROOT} ENV MKL_PATH MKL_ROOT
+ PATHS ${MKLROOT} ${MKL_PATH} ${MKL_ROOT} ENV MKLROOT ENV MKL_PATH ENV MKL_ROOT
PATH_SUFFIXES include NO_DEFAULT_PATH)
find_path(MKL_INCLUDE_DIR mkl.h
PATH_SUFFIXES include)
@@ -53,8 +54,6 @@ if( MKL_INCLUDE_DIR ) # use include dir to find libs
set( __libsfx "" )
endif()
- message( STATUS "ICC_LIB_PATH ${ICC_LIB_PATH}" )
-
find_library( MKL_LIB_INTEL NAMES mkl_intel${__libsfx} PATHS ${MKL_LIB_PATH} )
find_library( ${__mkl_lib_par} NAMES ${__mkl_lib_name} PATHS ${MKL_LIB_PATH} )
find_library( MKL_LIB_CORE NAMES mkl_core PATHS ${MKL_LIB_PATH} )
diff --git a/cmake/FindOpenJPEG.cmake b/cmake/FindOpenJPEG.cmake
index 805f091..b54ecce 100644
--- a/cmake/FindOpenJPEG.cmake
+++ b/cmake/FindOpenJPEG.cmake
@@ -20,14 +20,20 @@ IF( NOT DEFINED OPENJPEG_PATH AND NOT "$ENV{OPENJPEG_PATH}" STREQUAL "" )
SET( OPENJPEG_PATH "$ENV{OPENJPEG_PATH}" )
ENDIF()
-# TODO: This only works for OpenJPEG v1.x.y and not for v2 which has a different API, library name etc
+# Note: OpenJPEG version 2.x.y onwards has a variable-name sub-dir in the include
+# e.g. include/openjpeg-2.0 or include/openjpeg-2.1
+# We only support version 2.1.x
+# Also the name of the library is different. In v1.x it was libopenjpeg and now it's libopenjp2
if( DEFINED OPENJPEG_PATH )
- find_path(OPENJPEG_INCLUDE_DIR openjpeg.h PATHS ${OPENJPEG_PATH}/include PATH_SUFFIXES openjpeg NO_DEFAULT_PATH)
- find_library(OPENJPEG_LIBRARY openjpeg PATHS ${OPENJPEG_PATH}/lib PATH_SUFFIXES openjpeg NO_DEFAULT_PATH)
+ find_path(OPENJPEG_INCLUDE_DIR openjpeg.h PATHS ${OPENJPEG_PATH}/include PATH_SUFFIXES openjpeg openjpeg-2.1 NO_DEFAULT_PATH)
+
+ find_library( OPENJPEG_LIBRARY NAMES openjpeg openjp2 PATHS ${OPENJPEG_PATH}/lib
+ PATH_SUFFIXES openjpeg NO_DEFAULT_PATH )
endif()
-find_path(OPENJPEG_INCLUDE_DIR openjpeg.h PATH_SUFFIXES openjpeg )
-find_library( OPENJPEG_LIBRARY openjpeg PATH_SUFFIXES openjpeg )
+find_path(OPENJPEG_INCLUDE_DIR openjpeg.h PATH_SUFFIXES openjpeg openjpeg-2.1)
+
+find_library( OPENJPEG_LIBRARY NAMES openjpeg openjp2 PATH_SUFFIXES openjpeg )
set( OPENJPEG_LIBRARIES ${OPENJPEG_LIBRARY} )
set( OPENJPEG_INCLUDE_DIRS ${OPENJPEG_INCLUDE_DIR} )
diff --git a/cmake/VERSION.cmake b/cmake/VERSION.cmake
index ff7b93b..b4c65ee 100644
--- a/cmake/VERSION.cmake
+++ b/cmake/VERSION.cmake
@@ -1,7 +1,7 @@
set( ECBUILD_MAJOR_VERSION "2" )
-set( ECBUILD_MINOR_VERSION "3" )
+set( ECBUILD_MINOR_VERSION "4" )
set( ECBUILD_PATCH_VERSION "0" )
-set( ECBUILD_VERSION_STR "2.3.0" )
+set( ECBUILD_VERSION_STR "2.4.0" )
set( ECBUILD_MACRO_VERSION "${ECBUILD_MAJOR_VERSION}.${ECBUILD_MINOR_VERSION}" )
diff --git a/cmake/compiler_flags/Cray_C.cmake b/cmake/compiler_flags/Cray_C.cmake
index 76779f9..f487cf4 100644
--- a/cmake/compiler_flags/Cray_C.cmake
+++ b/cmake/compiler_flags/Cray_C.cmake
@@ -6,9 +6,8 @@
# granted to it by virtue of its status as an intergovernmental organisation
# nor does it submit to any jurisdiction.
-set( CMAKE_C_FLAGS_ALL "-hlist=amid" CACHE STRING "Common flags for all build-types" FORCE )
-set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_ALL} -O3 -hfp3 -hscalar3 -hvector3 -DNDEBUG" CACHE STRING "Release C flags" FORCE )
-set( CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_ALL} -O2 -hfp1 -Gfast -DNDEBUG" CACHE STRING "Release-with-debug-info C flags" FORCE )
-set( CMAKE_C_FLAGS_PRODUCTION "${CMAKE_C_FLAGS_ALL} -O2 -hfp1 -G2" CACHE STRING "Production C flags" FORCE )
-set( CMAKE_C_FLAGS_BIT "${CMAKE_C_FLAGS_ALL} -O2 -hfp1 -G2 -hflex_mp=conservative -hadd_paren -DNDEBUG" CACHE STRING "Bit-reproducible C flags" FORCE )
-set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_ALL} -O0 -G0" CACHE STRING "Debug Cflags" FORCE )
+set( CMAKE_C_FLAGS_RELEASE "-O3 -hfp3 -hscalar3 -hvector3 -DNDEBUG" CACHE STRING "Release C flags" FORCE )
+set( CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -hfp1 -Gfast -DNDEBUG" CACHE STRING "Release-with-debug-info C flags" FORCE )
+set( CMAKE_C_FLAGS_PRODUCTION "-O2 -hfp1 -G2" CACHE STRING "Production C flags" FORCE )
+set( CMAKE_C_FLAGS_BIT "-O2 -hfp1 -G2 -hflex_mp=conservative -DNDEBUG" CACHE STRING "Bit-reproducible C flags" FORCE )
+set( CMAKE_C_FLAGS_DEBUG "-O0 -G0" CACHE STRING "Debug Cflags" FORCE )
diff --git a/cmake/compiler_flags/Cray_CXX.cmake b/cmake/compiler_flags/Cray_CXX.cmake
index d599bff..a2a6632 100644
--- a/cmake/compiler_flags/Cray_CXX.cmake
+++ b/cmake/compiler_flags/Cray_CXX.cmake
@@ -6,9 +6,8 @@
# granted to it by virtue of its status as an intergovernmental organisation
# nor does it submit to any jurisdiction.
-set( CMAKE_CXX_FLAGS_ALL "-hlist=amid" CACHE STRING "Common flags for all build-types" FORCE )
-set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_ALL} -O3 -hfp3 -hscalar3 -hvector3 -DNDEBUG" CACHE STRING "Release C++ flags" FORCE )
-set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_ALL} -O2 -hfp1 -Gfast -DNDEBUG" CACHE STRING "Release-with-debug-info C++ flags" FORCE )
-set( CMAKE_CXX_FLAGS_PRODUCTION "${CMAKE_CXX_FLAGS_ALL} -O2 -hfp1 -G2" CACHE STRING "Production C++ flags" FORCE )
-set( CMAKE_CXX_FLAGS_BIT "${CMAKE_CXX_FLAGS_ALL} -O2 -hfp1 -G2 -hflex_mp=conservative -hadd_paren -DNDEBUG" CACHE STRING "Bit-reproducible C++ flags" FORCE )
-set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_ALL} -O0 -G0" CACHE STRING "Debug CXX flags" FORCE )
+set( CMAKE_CXX_FLAGS_RELEASE "-O3 -hfp3 -hscalar3 -hvector3 -DNDEBUG" CACHE STRING "Release C++ flags" FORCE )
+set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -hfp1 -Gfast -DNDEBUG" CACHE STRING "Release-with-debug-info C++ flags" FORCE )
+set( CMAKE_CXX_FLAGS_PRODUCTION "-O2 -hfp1 -G2" CACHE STRING "Production C++ flags" FORCE )
+set( CMAKE_CXX_FLAGS_BIT "-O2 -hfp1 -G2 -hflex_mp=conservative -DNDEBUG" CACHE STRING "Bit-reproducible C++ flags" FORCE )
+set( CMAKE_CXX_FLAGS_DEBUG "-O0 -G0" CACHE STRING "Debug CXX flags" FORCE )
diff --git a/cmake/compiler_flags/Cray_Fortran.cmake b/cmake/compiler_flags/Cray_Fortran.cmake
index b2c23de..34b96e4 100644
--- a/cmake/compiler_flags/Cray_Fortran.cmake
+++ b/cmake/compiler_flags/Cray_Fortran.cmake
@@ -7,9 +7,9 @@
# nor does it submit to any jurisdiction.
# -emf activates .mods and uses lower case
-set( CMAKE_Fortran_FLAGS_ALL "-emf" CACHE STRING "Common flags for all build-types" FORCE )
-set( CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_ALL} -O3 -hfp3 -hscalar3 -hvector3 -DNDEBUG" CACHE STRING "Release Fortran flags" FORCE )
-set( CMAKE_Fortran_FLAGS_RELWITHDEBINFO "${CMAKE_Fortran_FLAGS_ALL} -O2 -hfp1 -Gfast -DNDEBUG" CACHE STRING "Release-with-debug-info Fortran flags" FORCE )
-set( CMAKE_Fortran_FLAGS_PRODUCTION "${CMAKE_Fortran_FLAGS_ALL} -O2 -hfp1 -G2" CACHE STRING "Production Fortran flags" FORCE )
-set( CMAKE_Fortran_FLAGS_BIT "${CMAKE_Fortran_FLAGS_ALL} -O2 -hfp1 -G2 -hflex_mp=conservative -hadd_paren -DNDEBUG" CACHE STRING "Bit-reproducible Fortran flags" FORCE )
-set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_ALL} -O0 -G0" CACHE STRING "Debug Fortran flags" FORCE )
+# -rmoid produces a listing file
+set( CMAKE_Fortran_FLAGS_RELEASE "-emf -rmoid -O3 -hfp3 -hscalar3 -hvector3 -DNDEBUG" CACHE STRING "Release Fortran flags" FORCE )
+set( CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-emf -rmoid -O2 -hfp1 -Gfast -DNDEBUG" CACHE STRING "Release-with-debug-info Fortran flags" FORCE )
+set( CMAKE_Fortran_FLAGS_PRODUCTION "-emf -rmoid -O2 -hfp1 -G2" CACHE STRING "Production Fortran flags" FORCE )
+set( CMAKE_Fortran_FLAGS_BIT "-emf -rmoid -O2 -hfp1 -G2 -hflex_mp=conservative -hadd_paren -DNDEBUG" CACHE STRING "Bit-reproducible Fortran flags" FORCE )
+set( CMAKE_Fortran_FLAGS_DEBUG "-emf -rmoid -O0 -G0" CACHE STRING "Debug Fortran flags" FORCE )
diff --git a/cmake/contrib/GreatCMakeCookOff/AddCPP11Flags.cmake b/cmake/contrib/GreatCMakeCookOff/AddCPP11Flags.cmake
index 2a11e04..ac7f456 100644
--- a/cmake/contrib/GreatCMakeCookOff/AddCPP11Flags.cmake
+++ b/cmake/contrib/GreatCMakeCookOff/AddCPP11Flags.cmake
@@ -29,6 +29,7 @@ endif(CMAKE_VERSION VERSION_LESS 2.8.9)
check_cxx_compiler_flag(-std=c++11 has_std_cpp11)
check_cxx_compiler_flag(-std=c++0x has_std_cpp0x)
+check_cxx_compiler_flag(-hstd=c++11 has_hstd_cpp11)
if(MINGW)
check_cxx_compiler_flag(-std=gnu++11 has_std_gnupp11)
check_cxx_compiler_flag(-std=gnu++0x has_std_gnupp0x)
@@ -37,10 +38,12 @@ if(has_std_gnupp11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
elseif(has_std_gnupp0x)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
-elseif(has_std_cpp11)
+elseif(has_std_cpp11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(has_std_cpp0x)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+elseif(has_hstd_cpp11)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -hstd=c++11")
endif(has_std_gnupp11)
if(MSVC)
diff --git a/cmake/contrib/GreatCMakeCookOff/CheckCXX11Features.cmake b/cmake/contrib/GreatCMakeCookOff/CheckCXX11Features.cmake
index 71fa610..593b62f 100644
--- a/cmake/contrib/GreatCMakeCookOff/CheckCXX11Features.cmake
+++ b/cmake/contrib/GreatCMakeCookOff/CheckCXX11Features.cmake
@@ -1,14 +1,14 @@
# Checks for C++11 features
-#
+#
# USAGE: There are two functions
#
-# cxx11_find_all_features(OUTPUT_VARIABLE)
+# cxx11_find_all_features(OUTPUT_VARIABLE)
# This function returns a variable with all possible features.
#
# cxx11_feature_check([feature feature] [REQUIRED [feature feature]])
# If no arguments are provided, then checks all available features
# Features appeacing before REQUIRED are optional.
-# If arguments are provided and those features are available, sets
+# If arguments are provided and those features are available, sets
# the variable HAS_CXX11_FEATURENAME, where FEATURENAME is the input in capital letters.
# Fails if required feature are not available
#
@@ -17,65 +17,66 @@
# Original script by Rolf Eike Beer
# Modifications by Andreas Weis
# Further Modifications by RSDT at UCL
+# Adapted to ecBuild by Florian Rathgeber <florian.rathgeber at ecmwf.int>
set(CPP11_FEATURE_CHECK_DIR ${CMAKE_CURRENT_LIST_DIR}/cpp11 CACHE INTERNAL "c++11 file directory")
MACRO(cxx11_check_single_feature FEATURE_NAME FEATURE_NUMBER RESULT_VAR)
- IF (NOT DEFINED ${RESULT_VAR})
+ IF (NOT DEFINED ${RESULT_VAR})
SET(_bindir "${CMAKE_BINARY_DIR}/cxx11_feature_tests/cxx11_${FEATURE_NAME}")
- IF (${FEATURE_NUMBER})
+ IF (${FEATURE_NUMBER})
SET(_SRCFILE_BASE ${CPP11_FEATURE_CHECK_DIR}/${FEATURE_NAME}-N${FEATURE_NUMBER})
- SET(_LOG_NAME "\"${FEATURE_NAME}\" (N${FEATURE_NUMBER})")
- ELSE (${FEATURE_NUMBER})
+ SET(_LOG_NAME "\"${FEATURE_NAME}\" (N${FEATURE_NUMBER})")
+ ELSE (${FEATURE_NUMBER})
SET(_SRCFILE_BASE ${CPP11_FEATURE_CHECK_DIR}/${FEATURE_NAME})
- SET(_LOG_NAME "\"${FEATURE_NAME}\"")
- ENDIF (${FEATURE_NUMBER})
- MESSAGE(STATUS "Checking C++11 support for ${_LOG_NAME}")
-
- SET(_SRCFILE "${_SRCFILE_BASE}.cpp")
- SET(_SRCFILE_FAIL "${_SRCFILE_BASE}_fail.cpp")
- SET(_SRCFILE_FAIL_COMPILE "${_SRCFILE_BASE}_fail_compile.cpp")
-
- IF (CROSS_COMPILING)
- try_compile(${RESULT_VAR} "${_bindir}" "${_SRCFILE}")
- IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
- try_compile(${RESULT_VAR} "${_bindir}_fail" "${_SRCFILE_FAIL}")
- ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
- ELSE (CROSS_COMPILING)
- try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
- "${_bindir}" "${_SRCFILE}")
- IF (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
- SET(${RESULT_VAR} TRUE)
- ELSE (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
- SET(${RESULT_VAR} FALSE)
- ENDIF (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
- IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
- try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
- "${_bindir}_fail" "${_SRCFILE_FAIL}")
- IF (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
- SET(${RESULT_VAR} TRUE)
- ELSE (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
- SET(${RESULT_VAR} FALSE)
- ENDIF (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
- ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
- ENDIF (CROSS_COMPILING)
- IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
- try_compile(_TMP_RESULT "${_bindir}_fail_compile" "${_SRCFILE_FAIL_COMPILE}")
- IF (_TMP_RESULT)
- SET(${RESULT_VAR} FALSE)
- ELSE (_TMP_RESULT)
- SET(${RESULT_VAR} TRUE)
- ENDIF (_TMP_RESULT)
- ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
-
- IF (${RESULT_VAR})
- MESSAGE(STATUS "Checking C++11 support for ${_LOG_NAME} -- works")
- ELSE (${RESULT_VAR})
- MESSAGE(STATUS "Checking C++11 support for ${_LOG_NAME} -- not supported")
- ENDIF (${RESULT_VAR})
- SET(${RESULT_VAR} ${${RESULT_VAR}} CACHE INTERNAL "C++11 support for ${_LOG_NAME}")
- ENDIF (NOT DEFINED ${RESULT_VAR})
+ SET(_LOG_NAME "\"${FEATURE_NAME}\"")
+ ENDIF (${FEATURE_NUMBER})
+ ecbuild_info("Checking C++11 support for ${_LOG_NAME}")
+
+ SET(_SRCFILE "${_SRCFILE_BASE}.cpp")
+ SET(_SRCFILE_FAIL "${_SRCFILE_BASE}_fail.cpp")
+ SET(_SRCFILE_FAIL_COMPILE "${_SRCFILE_BASE}_fail_compile.cpp")
+
+ IF (CROSS_COMPILING)
+ try_compile(${RESULT_VAR} "${_bindir}" "${_SRCFILE}")
+ IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ try_compile(${RESULT_VAR} "${_bindir}_fail" "${_SRCFILE_FAIL}")
+ ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ ELSE (CROSS_COMPILING)
+ try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
+ "${_bindir}" "${_SRCFILE}")
+ IF (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} TRUE)
+ ELSE (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} FALSE)
+ ENDIF (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
+ IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
+ "${_bindir}_fail" "${_SRCFILE_FAIL}")
+ IF (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} TRUE)
+ ELSE (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} FALSE)
+ ENDIF (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
+ ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ ENDIF (CROSS_COMPILING)
+ IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
+ try_compile(_TMP_RESULT "${_bindir}_fail_compile" "${_SRCFILE_FAIL_COMPILE}")
+ IF (_TMP_RESULT)
+ SET(${RESULT_VAR} FALSE)
+ ELSE (_TMP_RESULT)
+ SET(${RESULT_VAR} TRUE)
+ ENDIF (_TMP_RESULT)
+ ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
+
+ IF (${RESULT_VAR})
+ ecbuild_info("Checking C++11 support for ${_LOG_NAME} -- works")
+ ELSE (${RESULT_VAR})
+ ecbuild_info("Checking C++11 support for ${_LOG_NAME} -- not supported")
+ ENDIF (${RESULT_VAR})
+ SET(${RESULT_VAR} ${${RESULT_VAR}} CACHE INTERNAL "C++11 support for ${_LOG_NAME}")
+ ENDIF (NOT DEFINED ${RESULT_VAR})
ENDMACRO(cxx11_check_single_feature)
# Find list of all features
@@ -138,12 +139,12 @@ macro(_figure_out_cxx11_feature current_feature)
list(REMOVE_ITEM ALL_FEATURE_FILES ${filename})
endif()
endforeach()
-
+
list(LENGTH ALL_FEATURE_FILES NFILES)
if(NOT ${NFILES} EQUAL 1)
- message(FATAL_ERROR "[c++11] Expected to find only one feature. Found ${NFILES} -- ${ALL_FEATURE_FILES}.")
+ ecbuild_critical("[c++11] Expected to find only one feature. Found ${NFILES} -- ${ALL_FEATURE_FILES}.")
endif(NOT ${NFILES} EQUAL 1)
-
+
# Now we know which file corresponds to option.
get_filename_component(basename ${ALL_FEATURE_FILES} NAME_WE)
# If has feature number, extract it
@@ -165,18 +166,18 @@ function(cxx11_feature_check)
# Parses input to this function.
parse_input_features("${ALL_CPP11_FEATURES}" OPTIONALS REQUIRED ERRORS ${ARGN})
if(NOT ${ERRORS} STREQUAL "")
- message(STATUS "[c++11] The following features are unknown: ${ERRORS}.")
+ ecbuild_info("[c++11] The following features are unknown: ${ERRORS}.")
endif()
# MinGW has not implemented std::random_device fully yet. Unfortunately, this can only be detected
# by running a program which tries to call std::random_device. However that generates an error that
- # is *not* caught by CMake's try_run.
+ # is *not* caught by CMake's try_run.
if(MSYS)
list(REMOVE_ITEM OPTIONALS "random_device")
list(FIND REQUIRED "random_device" feature_was_found)
if(NOT feature_was_found EQUAL "-1")
- message(FATAL_ERROR "[c++1] MSYS does not implement Random devices fully.\n"
- " It cannot be required on this system.")
+ ecbuild_critical("[c++1] MSYS does not implement Random devices fully.\n"
+ " It cannot be required on this system.")
endif()
endif()
@@ -190,7 +191,7 @@ function(cxx11_feature_check)
_figure_out_cxx11_feature(${current_feature})
set(VARNAME HAS_CXX11_${UPPER_OPTIONAL})
if(NOT ${VARNAME})
- message(FATAL_ERROR "[c++11] Required feature ${current_feature} is not available.")
+ ecbuild_critical("[c++11] Required feature ${current_feature} is not available.")
endif(NOT ${VARNAME})
endforeach(current_feature ${REQUIRED})
diff --git a/cmake/ecbuild_add_executable.cmake b/cmake/ecbuild_add_executable.cmake
index 4572832..424059e 100644
--- a/cmake/ecbuild_add_executable.cmake
+++ b/cmake/ecbuild_add_executable.cmake
@@ -26,7 +26,7 @@
# [ PERSISTENT <file1> [<file2> ...] ]
# [ GENERATED <file1> [<file2> ...] ]
# [ DEPENDS <target1> [<target2> ...] ]
-# [ CONDITION <condition1> [<condition2> ...] ]
+# [ CONDITION <condition> ]
# [ NOINSTALL ]
# [ VERSION <version> | AUTO_VERSION ]
# [ CFLAGS <flag1> [<flag2> ...] ]
@@ -232,66 +232,10 @@ macro( ecbuild_add_executable )
# ecbuild_debug_var( ${_PAR_TARGET}_h_srcs )
# ecbuild_debug_var( ${_PAR_TARGET}_c_srcs )
# ecbuild_debug_var( ${_PAR_TARGET}_cxx_srcs )
- # ecbuild_debug_var( ${_PAR_TARGET}_f_srcs )
+ # ecbuild_debug_var( ${_PAR_TARGET}_fortran_srcs )
- # add local flags
-
- if( ${_PAR_TARGET}_c_srcs )
-
- if( ECBUILD_SOURCE_FLAGS )
- ecbuild_source_flags( ${_PAR_TARGET}_C_SOURCE_FLAGS
- ${_PAR_TARGET}_c
- "${_PAR_CFLAGS}"
- "${${_PAR_TARGET}_c_srcs}" )
-
- ecbuild_debug("ecbuild_add_executable(${_PAR_TARGET}): setting source file C flags from ${${_PAR_TARGET}_C_SOURCE_FLAGS}")
- include( ${${_PAR_TARGET}_C_SOURCE_FLAGS} )
-
- elseif( DEFINED _PAR_CFLAGS )
-
- ecbuild_debug("ecbuild_add_executable(${_PAR_TARGET}): use C flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_c_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_CFLAGS}" )
-
- endif()
- endif()
-
- if( ${_PAR_TARGET}_cxx_srcs )
-
- if( ECBUILD_SOURCE_FLAGS )
- ecbuild_source_flags( ${_PAR_TARGET}_CXX_SOURCE_FLAGS
- ${_PAR_TARGET}_cxx
- "${_PAR_CXXFLAGS}"
- "${${_PAR_TARGET}_cxx_srcs}" )
-
- ecbuild_debug("ecbuild_add_executable(${_PAR_TARGET}): setting source file CXX flags from ${${_PAR_TARGET}_CXX_SOURCE_FLAGS}")
- include( ${${_PAR_TARGET}_CXX_SOURCE_FLAGS} )
-
- elseif( DEFINED _PAR_CXXFLAGS )
-
- ecbuild_debug("ecbuild_add_executable(${_PAR_TARGET}): use C++ flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_cxx_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_CXXFLAGS}" )
-
- endif()
- endif()
-
- if( ${_PAR_TARGET}_f_srcs )
-
- if( ECBUILD_SOURCE_FLAGS )
- ecbuild_source_flags( ${_PAR_TARGET}_Fortran_SOURCE_FLAGS
- ${_PAR_TARGET}_f
- "${_PAR_FFLAGS}"
- "${${_PAR_TARGET}_f_srcs}" )
-
- ecbuild_debug("ecbuild_add_executable(${_PAR_TARGET}): setting source file Fortran flags from ${${_PAR_TARGET}_Fortran_SOURCE_FLAGS}")
- include( ${${_PAR_TARGET}_Fortran_SOURCE_FLAGS} )
-
- elseif( DEFINED _PAR_FFLAGS )
-
- ecbuild_debug("ecbuild_add_executable(${_PAR_TARGET}): use Fortran flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_f_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_FFLAGS}" )
-
- endif()
- endif()
+ # Override compilation flags on a per source file basis
+ ecbuild_target_flags( ${_PAR_TARGET} "${_PAR_CFLAGS}" "${_PAR_CXXFLAGS}" "${_PAR_FFLAGS}" )
# define VERSION if requested
if( DEFINED _PAR_VERSION )
diff --git a/cmake/ecbuild_add_fortran_flags.cmake b/cmake/ecbuild_add_fortran_flags.cmake
index 17b9bf2..0d3b544 100644
--- a/cmake/ecbuild_add_fortran_flags.cmake
+++ b/cmake/ecbuild_add_fortran_flags.cmake
@@ -64,7 +64,14 @@ macro( ecbuild_add_fortran_flags m_fortran_flags )
math( EXPR N_FortranFLAG '${N_FortranFLAG}+1' )
- if( NOT ECBUILD_TRUST_FLAGS )
+ if( ECBUILD_TRUST_FLAGS )
+ set( _flag_ok 1 )
+ # Due to a bug in CMake < 3.0, check_fortran_compiler_flag ALWAYS fails with ifort
+ # see https://cmake.org/Bug/view.php?id=14507
+ elseif( CMAKE_MAJOR_VERSION LESS 3 AND CMAKE_Fortran_COMPILER_ID MATCHES "Intel" )
+ set( _flag_ok 1 )
+ ecbuild_warn( "Not testing Fortran flags due to a bug in CMake < 3.0 with ifort" )
+ else()
if( DEFINED _PAR_NAME )
check_fortran_compiler_flag( ${_flags} ${_PAR_NAME} )
set( _flag_ok ${${_PAR_NAME}} )
@@ -72,8 +79,6 @@ macro( ecbuild_add_fortran_flags m_fortran_flags )
check_fortran_compiler_flag( ${_flags} Fortran_FLAG_TEST_${N_FortranFLAG} )
set( _flag_ok ${Fortran_FLAG_TEST_${N_FortranFLAG}} )
endif()
- else()
- set( _flag_ok 1 )
endif()
if( _flag_ok )
diff --git a/cmake/ecbuild_add_library.cmake b/cmake/ecbuild_add_library.cmake
index 48602a4..2c59200 100644
--- a/cmake/ecbuild_add_library.cmake
+++ b/cmake/ecbuild_add_library.cmake
@@ -29,7 +29,7 @@
# [ PERSISTENT <file1> [<file2> ...] ]
# [ GENERATED <file1> [<file2> ...] ]
# [ DEPENDS <target1> [<target2> ...] ]
-# [ CONDITION <condition1> [<condition2> ...] ]
+# [ CONDITION <condition> ]
# [ NOINSTALL ]
# [ HEADER_DESTINATION <path> ]
# [ INSTALL_HEADERS LISTED|ALL ]
@@ -352,66 +352,10 @@ function( ecbuild_add_library_impl )
# ecbuild_debug_var( ${_PAR_TARGET}_h_srcs )
# ecbuild_debug_var( ${_PAR_TARGET}_c_srcs )
# ecbuild_debug_var( ${_PAR_TARGET}_cxx_srcs )
- # ecbuild_debug_var( ${_PAR_TARGET}_f_srcs )
+ # ecbuild_debug_var( ${_PAR_TARGET}_fortran_srcs )
- # add local flags
-
- if( ${_PAR_TARGET}_c_srcs )
-
- if( ECBUILD_SOURCE_FLAGS )
- ecbuild_source_flags( ${_PAR_TARGET}_C_SOURCE_FLAGS
- ${_PAR_TARGET}_c
- "${_PAR_CFLAGS}"
- "${${_PAR_TARGET}_c_srcs}" )
-
- ecbuild_debug("ecbuild_add_library(${_PAR_TARGET}): setting source file C flags from ${${_PAR_TARGET}_C_SOURCE_FLAGS}")
- include( ${${_PAR_TARGET}_C_SOURCE_FLAGS} )
-
- elseif( DEFINED _PAR_CFLAGS )
-
- ecbuild_debug("ecbuild_add_library(${_PAR_TARGET}): use C flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_c_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_CFLAGS}" )
-
- endif()
- endif()
-
- if( ${_PAR_TARGET}_cxx_srcs )
-
- if( ECBUILD_SOURCE_FLAGS )
- ecbuild_source_flags( ${_PAR_TARGET}_CXX_SOURCE_FLAGS
- ${_PAR_TARGET}_cxx
- "${_PAR_CXXFLAGS}"
- "${${_PAR_TARGET}_cxx_srcs}" )
-
- ecbuild_debug("ecbuild_add_library(${_PAR_TARGET}): setting source file CXX flags from ${${_PAR_TARGET}_CXX_SOURCE_FLAGS}")
- include( ${${_PAR_TARGET}_CXX_SOURCE_FLAGS} )
-
- elseif( DEFINED _PAR_CXXFLAGS )
-
- ecbuild_debug("ecbuild_add_library(${_PAR_TARGET}): use C++ flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_cxx_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_CXXFLAGS}" )
-
- endif()
- endif()
-
- if( ${_PAR_TARGET}_f_srcs )
-
- if( ECBUILD_SOURCE_FLAGS )
- ecbuild_source_flags( ${_PAR_TARGET}_Fortran_SOURCE_FLAGS
- ${_PAR_TARGET}_f
- "${_PAR_FFLAGS}"
- "${${_PAR_TARGET}_f_srcs}" )
-
- ecbuild_debug("ecbuild_add_library(${_PAR_TARGET}): setting source file Fortran flags from ${${_PAR_TARGET}_Fortran_SOURCE_FLAGS}")
- include( ${${_PAR_TARGET}_Fortran_SOURCE_FLAGS} )
-
- elseif( DEFINED _PAR_FFLAGS )
-
- ecbuild_debug("ecbuild_add_library(${_PAR_TARGET}): use Fortran flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_f_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_FFLAGS}" )
-
- endif()
- endif()
+ # Override compilation flags on a per source file basis
+ ecbuild_target_flags( ${_PAR_TARGET} "${_PAR_CFLAGS}" "${_PAR_CXXFLAGS}" "${_PAR_FFLAGS}" )
if( DEFINED _PAR_GENERATED )
ecbuild_debug("ecbuild_add_library(${_PAR_TARGET}): mark as generated ${_PAR_GENERATED}")
diff --git a/cmake/ecbuild_add_option.cmake b/cmake/ecbuild_add_option.cmake
index 8261bd4..ed262d5 100644
--- a/cmake/ecbuild_add_option.cmake
+++ b/cmake/ecbuild_add_option.cmake
@@ -19,8 +19,8 @@
# [ DESCRIPTION <description> ]
# [ PURPOSE <purpose> ]
# [ REQUIRED_PACKAGES <package1> [<package2> ...] ]
-# [ CONDITION <condition1> [<condition2> ...] ]
-# [ ADVANCED ] )
+# [ CONDITION <condition> ]
+# [ ADVANCED ] [ NO_TPL ] )
#
# Options
# -------
@@ -66,6 +66,9 @@
# ADVANCED : optional
# mark the feature as advanced
#
+# NO_TPL : optional
+# do not add any ``REQUIRED_PACKAGES`` to the list of third party libraries
+#
# Usage
# -----
#
@@ -84,7 +87,7 @@
macro( ecbuild_add_option )
- set( options ADVANCED )
+ set( options ADVANCED NO_TPL )
set( single_value_args FEATURE DEFAULT DESCRIPTION TYPE PURPOSE )
set( multi_value_args REQUIRED_PACKAGES CONDITION )
@@ -196,6 +199,7 @@ macro( ecbuild_add_option )
string( TOUPPER ${pkgname} pkgUPPER )
string( TOLOWER ${pkgname} pkgLOWER )
+ set( __help_msg "Provide ${pkgname} location with -D${pkgUPPER}_PATH=/..." )
if( ${pkgname}_FOUND OR ${pkgUPPER}_FOUND OR ${pkgLOWER}_FOUND )
ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): ${pkgname} has already been found")
@@ -205,7 +209,7 @@ macro( ecbuild_add_option )
if( pkgproject )
- ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for ecbuild project ${pkgname}")
+ ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for ecbuild project ${pkgname} - ecbuild_use_package( ${pkglist} )")
ecbuild_use_package( ${pkglist} )
else()
@@ -213,7 +217,7 @@ macro( ecbuild_add_option )
if( pkgname STREQUAL "MPI" )
set( _find_args ${pkglist} )
list( REMOVE_ITEM _find_args "MPI" )
- ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for MPI")
+ ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for MPI - ecbuild_find_mpi( ${_find_args} )")
ecbuild_find_mpi( ${_find_args} )
elseif( pkgname STREQUAL "OMP" )
set( _find_args ${pkglist} )
@@ -221,20 +225,21 @@ macro( ecbuild_add_option )
if( NOT ENABLE_${_p_FEATURE} )
list( APPEND _find_args STUBS )
endif()
- ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for OpenMP")
+ ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for OpenMP - ecbuild_find_omp( ${_find_args} )")
ecbuild_find_omp( ${_find_args} )
elseif( pkgname STREQUAL "Python" OR pkgname STREQUAL "PYTHON" )
set( _find_args ${pkglist} )
list( REMOVE_ITEM _find_args ${pkgname} )
- ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for Python")
+ ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for Python - ecbuild_find_python( ${_find_args} )")
ecbuild_find_python( ${_find_args} )
+ set( __help_msg "Specify the location of the Python interpreter with -DPYTHON_EXECUTABLE=/..." )
elseif( pkgname STREQUAL "LEXYACC" )
set( _find_args ${pkglist} )
list( REMOVE_ITEM _find_args ${pkgname} )
- ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for lex-yacc")
+ ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for lex-yacc - ecbuild_find_lexyacc( ${_find_args} )")
ecbuild_find_lexyacc( ${_find_args} )
else()
- ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for package ${pkgname}")
+ ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): searching for package ${pkgname} - find_package( ${pkglist} )")
find_package( ${pkglist} )
endif()
@@ -242,14 +247,6 @@ macro( ecbuild_add_option )
endif()
- # if found append to list of third-party libraries (to be forward to other packages )
- if( ${pkgname}_FOUND OR ${pkgUPPER}_FOUND OR ${pkgLOWER}_FOUND )
-
- list( APPEND ${PROJECT_NAME_CAPS}_TPLS ${pkgname} )
- list( REMOVE_DUPLICATES ${PROJECT_NAME_CAPS}_TPLS )
-
- endif()
-
# ecbuild_debug_var( ${pkgname}_FOUND )
# ecbuild_debug_var( ${pkgLOWER}_FOUND )
# ecbuild_debug_var( ${pkgUPPER}_FOUND )
@@ -258,8 +255,17 @@ macro( ecbuild_add_option )
if( ${pkgname}_FOUND OR ${pkgUPPER}_FOUND OR ${pkgLOWER}_FOUND )
ecbuild_info( "Found package ${pkgname} required for feature ${_p_FEATURE}" )
+
+ # append to list of third-party libraries (to be forward to other packages )
+ # unless the NO_TPL option was given
+ if( NOT _p_NO_TPL )
+ ecbuild_debug("ecbuild_add_option(${_p_FEATURE}): appending ${pkgname} to ${PROJECT_NAME_CAPS}_TPLS")
+ list( APPEND ${PROJECT_NAME_CAPS}_TPLS ${pkgname} )
+ list( REMOVE_DUPLICATES ${PROJECT_NAME_CAPS}_TPLS )
+ endif()
+
else()
- ecbuild_info( "Could not find package ${pkgname} required for feature ${_p_FEATURE} -- Provide ${pkgname} location with -D${pkgUPPER}_PATH=/..." )
+ ecbuild_info( "Could NOT find package ${pkgname} required for feature ${_p_FEATURE} -- ${__help_msg}" )
set( HAVE_${_p_FEATURE} 0 )
list( APPEND _failed_to_find_packages ${pkgname} )
endif()
@@ -279,15 +285,16 @@ macro( ecbuild_add_option )
else() # if user provided input and we cannot satisfy FAIL otherwise WARN
if( ${_p_FEATURE}_user_provided_input )
- if( _${_p_FEATURE}_condition )
- ecbuild_critical( "Feature ${_p_FEATURE} cannot be enabled -- following required packages weren't found: ${_failed_to_find_packages}" )
- else()
+ if( NOT _${_p_FEATURE}_condition )
string(REPLACE ";" " " _condition_msg "${_p_CONDITION}")
ecbuild_critical( "Feature ${_p_FEATURE} cannot be enabled -- following condition was not met: ${_condition_msg}" )
+ else()
+ ecbuild_critical( "Feature ${_p_FEATURE} cannot be enabled -- following required packages weren't found: ${_failed_to_find_packages}" )
endif()
else()
- if( _${_p_FEATURE}_condition )
- ecbuild_info( "Feature ${_p_FEATURE} was not enabled (also not requested) -- following condition was not met: ${_p_CONDITION}" )
+ if( NOT _${_p_FEATURE}_condition )
+ string(REPLACE ";" " " _condition_msg "${_p_CONDITION}")
+ ecbuild_info( "Feature ${_p_FEATURE} was not enabled (also not requested) -- following condition was not met: ${_condition_msg}" )
else()
ecbuild_info( "Feature ${_p_FEATURE} was not enabled (also not requested) -- following required packages weren't found: ${_failed_to_find_packages}" )
endif()
diff --git a/cmake/ecbuild_add_test.cmake b/cmake/ecbuild_add_test.cmake
index 2097683..c8c9864 100644
--- a/cmake/ecbuild_add_test.cmake
+++ b/cmake/ecbuild_add_test.cmake
@@ -33,7 +33,7 @@
# [ GENERATED <file1> [<file2> ...] ]
# [ DEPENDS <target1> [<target2> ...] ]
# [ TEST_DEPENDS <target1> [<target2> ...] ]
-# [ CONDITION <condition1> [<condition2> ...] ]
+# [ CONDITION <condition> ]
# [ ENVIRONMENT <variable1> [<variable2> ...] ]
# [ WORKING_DIRECTORY <path> ]
# [ CFLAGS <flag1> [<flag2> ...] ]
@@ -322,25 +322,14 @@ macro( ecbuild_add_test )
# filter sources
ecbuild_separate_sources( TARGET ${_PAR_TARGET} SOURCES ${_PAR_SOURCES} )
- # add local flags
- if( DEFINED _PAR_CFLAGS )
- ecbuild_debug("ecbuild_add_test(${_PAR_TARGET}): use C flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_c_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_CFLAGS}" )
- endif()
- if( DEFINED _PAR_CXXFLAGS )
- ecbuild_debug("ecbuild_add_test(${_PAR_TARGET}): use C++ flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_cxx_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_CXXFLAGS}" )
- endif()
- if( DEFINED _PAR_FFLAGS )
- ecbuild_debug("ecbuild_add_test(${_PAR_TARGET}): use Fortran flags ${_PAR_CFLAGS}")
- set_source_files_properties( ${${_PAR_TARGET}_f_srcs} PROPERTIES COMPILE_FLAGS "${_PAR_FFLAGS}" )
- endif()
+ # Override compilation flags on a per source file basis
+ ecbuild_target_flags( ${_PAR_TARGET} "${_PAR_CFLAGS}" "${_PAR_CXXFLAGS}" "${_PAR_FFLAGS}" )
+
if( DEFINED _PAR_GENERATED )
ecbuild_debug("ecbuild_add_test(${_PAR_TARGET}): mark as generated ${_PAR_GENERATED}")
set_source_files_properties( ${_PAR_GENERATED} PROPERTIES GENERATED 1 )
endif()
-
# modify definitions to compilation ( -D... )
get_property( _target_defs TARGET ${_PAR_TARGET} PROPERTY COMPILE_DEFINITIONS )
@@ -405,7 +394,7 @@ macro( ecbuild_add_test )
# Wrap with MPIEXEC
if( _PAR_MPI )
-
+
set( MPIEXEC_TASKS ${MPIEXEC_NUMPROC_FLAG} ${_PAR_MPI} )
if( DEFINED MPIEXEC_NUMTHREAD_FLAG )
set( MPIEXEC_THREADS ${MPIEXEC_NUMTHREAD_FLAG} ${_PAR_OMP} )
diff --git a/cmake/ecbuild_bundle.cmake b/cmake/ecbuild_bundle.cmake
index 83b0bba..aee900c 100644
--- a/cmake/ecbuild_bundle.cmake
+++ b/cmake/ecbuild_bundle.cmake
@@ -20,7 +20,9 @@ include(ecbuild_git)
# =========================
#
# Initialise the ecBuild environment for a bundle. *Must* be called *before*
-# any call to ecbuild_bundle.
+# any call to ``ecbuild_bundle``. ::
+#
+# ecbuild_bundle_initialize()
#
##############################################################################
@@ -159,7 +161,9 @@ endmacro()
# =======================
#
# Finalise the ecBuild environment for a bundle. *Must* be called *after* the
-# last call to ecbuild_bundle.
+# last call to ``ecbuild_bundle``. ::
+#
+# ecbuild_bundle_finalize()
#
##############################################################################
diff --git a/cmake/ecbuild_check_cxx11.cmake b/cmake/ecbuild_check_cxx11.cmake
index 390462b..1639a6a 100644
--- a/cmake/ecbuild_check_cxx11.cmake
+++ b/cmake/ecbuild_check_cxx11.cmake
@@ -23,14 +23,19 @@
# Options
# -------
#
-# FEATURES : optional, checks for all features if omitted
-# list of features to check for
+# FEATURES : optional
+# list of optional features to check for
#
# REQUIRED : optional
# list of required features to check for
#
# PRINT : optional
-# print a summary of features check for, found and not found
+# print a summary of features checked for, found and not found
+#
+# Note
+# ----
+#
+# If neither ``FEATURES`` nor ``REQUIRED`` are given, check for all features.
#
##############################################################################
diff --git a/cmake/ecbuild_check_fortran.cmake b/cmake/ecbuild_check_fortran.cmake
new file mode 100644
index 0000000..5612134
--- /dev/null
+++ b/cmake/ecbuild_check_fortran.cmake
@@ -0,0 +1,126 @@
+# (C) Copyright 1996-2016 ECMWF.
+#
+# This software is licensed under the terms of the Apache Licence Version 2.0
+# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+# In applying this licence, ECMWF does not waive the privileges and immunities
+# granted to it by virtue of its status as an intergovernmental organisation
+# nor does it submit to any jurisdiction.
+
+##############################################################################
+#.rst:
+#
+# ecbuild_check_fortran
+# =====================
+#
+# Check for Fortran features. ::
+#
+# ecbuild_check_fortran( [ FEATURES <feature1> [ <feature2> ... ] ]
+# [ REQUIRED <feature1> [ <feature2> ... ] ]
+# [ PRINT ] )
+#
+# Options
+# -------
+#
+# FEATURES : optional
+# list of optional features to check for
+#
+# REQUIRED : optional
+# list of required features to check for, fails if not detected
+#
+# PRINT : optional
+# print a summary of features checked for, found and not found
+#
+# Note
+# ----
+#
+# If neither ``FEATURES`` nor ``REQUIRED`` are given, check for all features.
+#
+##############################################################################
+
+function( ecbuild_check_fortran )
+
+ # parse parameters
+
+ set( options PRINT )
+ set( single_value_args )
+ set( multi_value_args FEATURES REQUIRED )
+
+ cmake_parse_arguments( _p "${options}" "${single_value_args}" "${multi_value_args}" ${_FIRST_ARG} ${ARGN} )
+
+ if(_PAR_UNPARSED_ARGUMENTS)
+ ecbuild_critical("Unknown keywords given to ecbuild_check_fortran(): \"${_PAR_UNPARSED_ARGUMENTS}\"")
+ endif()
+
+ include( ${ECBUILD_MACROS_DIR}/fortran_features/CheckFortranFeatures.cmake )
+
+ fortran_find_all_features( ALL_FEATURES ) # list all available features to check
+
+ if( NOT _p_FEATURES AND NOT _p_REQUIRED ) # no input, then search for all features
+
+ fortran_feature_check()
+
+ else()
+
+ foreach( _f ${_p_FEATURES} )
+ fortran_feature_check( ${_f} )
+ endforeach()
+
+ foreach( _f ${_p_REQUIRED} )
+ fortran_feature_check( REQUIRED ${_f} )
+ endforeach()
+
+ endif()
+
+ if( _p_FEATURES OR _p_REQUIRED )
+ set( Fortran_CHECKED_FEATURES ${_p_FEATURES} ${_p_REQUIRED} )
+ else()
+ set( Fortran_CHECKED_FEATURES ${ALL_FEATURES} )
+ endif()
+
+ foreach( f ${Fortran_CHECKED_FEATURES} )
+ string( TOUPPER ${f} FEAT )
+ if( HAS_Fortran_${FEAT} )
+ list( APPEND Fortran_SUPPORTED_FEATURES ${f} )
+ set( EC_HAVE_Fortran_${FEAT} 1 PARENT_SCOPE )
+ else()
+ list( APPEND Fortran_NOT_SUPPORTED_FEATURES ${f} )
+ set( EC_HAVE_Fortran_${FEAT} 0 PARENT_SCOPE )
+ endif()
+ endforeach()
+
+ if( Fortran_CHECKED_FEATURES )
+ list( SORT Fortran_CHECKED_FEATURES )
+ endif()
+ if( Fortran_SUPPORTED_FEATURES )
+ list( SORT Fortran_SUPPORTED_FEATURES )
+ endif()
+ if( Fortran_NOT_SUPPORTED_FEATURES )
+ list( SORT Fortran_NOT_SUPPORTED_FEATURES )
+ endif()
+
+ set( Fortran_CHECKED_FEATURES ${Fortran_CHECKED_FEATURES} PARENT_SCOPE )
+ set( Fortran_SUPPORTED_FEATURES ${Fortran_SUPPORTED_FEATURES} PARENT_SCOPE )
+ set( Fortran_NOT_SUPPORTED_FEATURES ${Fortran_NOT_SUPPORTED_FEATURES} PARENT_SCOPE )
+
+ if( _p_PRINT )
+ if( Fortran_CHECKED_FEATURES )
+ join( Fortran_CHECKED_FEATURES " " Fortran_CHECKED_FEATURES_STR )
+ ecbuild_info( "Checked Fortran features: ${Fortran_CHECKED_FEATURES_STR}" )
+ else()
+ ecbuild_info( "Checked no Fortran features" )
+ endif()
+ if( Fortran_SUPPORTED_FEATURES )
+ join( Fortran_SUPPORTED_FEATURES " " Fortran_SUPPORTED_FEATURES_STR )
+ ecbuild_info( "Found Fortran features: ${Fortran_SUPPORTED_FEATURES_STR}" )
+ else()
+ ecbuild_info( "Found no Fortran features" )
+ endif()
+ if( Fortran_NOT_SUPPORTED_FEATURES )
+ join( Fortran_NOT_SUPPORTED_FEATURES " " Fortran_NOT_SUPPORTED_FEATURES_STR )
+ ecbuild_info( "Not found Fortran features: ${Fortran_NOT_SUPPORTED_FEATURES_STR}" )
+ else()
+ ecbuild_info( "Found all checked Fortran features" )
+ endif()
+ endif()
+
+endfunction( ecbuild_check_fortran )
diff --git a/cmake/ecbuild_check_fortran_source_return.cmake b/cmake/ecbuild_check_fortran_source_return.cmake
index 6b007df..175f4ef 100644
--- a/cmake/ecbuild_check_fortran_source_return.cmake
+++ b/cmake/ecbuild_check_fortran_source_return.cmake
@@ -52,7 +52,6 @@
macro( ecbuild_check_fortran_source_return SOURCE )
- ecbuild_warn( "This macro ecbuild_check_fortran_source has never been tested" )
set( options )
set( single_value_args VAR OUTPUT )
set( multi_value_args INCLUDES LIBS DEFINITIONS )
@@ -93,15 +92,15 @@ macro( ecbuild_check_fortran_source_return SOURCE )
if( __add_libs )
set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES "-DINCLUDE_DIRECTORIES:STRING=${__add_incs}")
endif()
-
+
# write the source file
-
- file( WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_${_PAR_VAR}.f" "${SOURCE}\n" )
+
+ file( WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_${_PAR_VAR}.F90" "${SOURCE}\n" )
ecbuild_debug( "Performing Test ${_PAR_VAR}" )
try_run( ${_PAR_VAR}_EXITCODE ${_PAR_VAR}_COMPILED
${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_${_PAR_VAR}.f
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_${_PAR_VAR}.F90
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
-DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
@@ -142,9 +141,9 @@ macro( ecbuild_check_fortran_source_return SOURCE )
ecbuild_debug("Performing Test ${_PAR_VAR} - Failed")
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing C SOURCE FILE Test ${_PAR_VAR} failed with the following compile output:\n"
+ "Performing Fortran SOURCE FILE Test ${_PAR_VAR} failed with the following compile output:\n"
"${compile_OUTPUT}\n"
- "Performing C SOURCE FILE Run ${_PAR_VAR} failed with the following run output:\n"
+ "Performing Fortran SOURCE FILE Run ${_PAR_VAR} failed with the following run output:\n"
"${run_OUTPUT}\n"
"Return value: ${${_PAR_VAR}_EXITCODE}\n"
"Source file was:\n${SOURCE}\n")
diff --git a/cmake/ecbuild_check_functions.cmake b/cmake/ecbuild_check_functions.cmake
index 88526b5..73f5cb5 100644
--- a/cmake/ecbuild_check_functions.cmake
+++ b/cmake/ecbuild_check_functions.cmake
@@ -169,6 +169,15 @@ if( ENABLE_OS_FUNCTIONS_TEST )
# ecbuild_debug_var(EC_HAVE_PROCFS)
# ecbuild_debug_var(EC_HAVE_PROCFS_OUTPUT)
+ #### check support for DL library #############
+
+ ecbuild_cache_check_include_files( dlfcn.h EC_HAVE_DLFCN_H )
+
+ cmake_push_check_state(RESET)
+ set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS} )
+ ecbuild_cache_check_c_source_compiles( "#define _GNU_SOURCE\n#include <dlfcn.h>\nint main(){ void* addr; Dl_info info; dladdr(addr, &info); }\n" EC_HAVE_DLADDR )
+ cmake_pop_check_state()
+
endif()
diff --git a/cmake/ecbuild_compiler_flags.cmake b/cmake/ecbuild_compiler_flags.cmake
index b97eb2c..0e3fe1e 100644
--- a/cmake/ecbuild_compiler_flags.cmake
+++ b/cmake/ecbuild_compiler_flags.cmake
@@ -12,7 +12,7 @@
# ecbuild_compiler_flags
# ======================
#
-# Set default compiler flags for a given language. ::
+# Set compiler specific default compilation flags for a given language. ::
#
# ecbuild_compiler_flags( <lang> )
#
@@ -35,53 +35,171 @@
macro( ecbuild_compiler_flags _lang )
+ # Set compiler and language specific default flags - OVERWRITES variables in CMake cache
if( CMAKE_${_lang}_COMPILER_LOADED )
-
- ecbuild_debug( "try include ${ECBUILD_MACROS_DIR}/compiler_flags/${CMAKE_${_lang}_COMPILER_ID}_${_lang}.cmake ")
-
+ ecbuild_debug( "ecbuild_compiler_flags(${_lang}): try include ${ECBUILD_MACROS_DIR}/compiler_flags/${CMAKE_${_lang}_COMPILER_ID}_${_lang}.cmake ")
include( ${ECBUILD_MACROS_DIR}/compiler_flags/${CMAKE_${_lang}_COMPILER_ID}_${_lang}.cmake OPTIONAL )
-
- ecbuild_debug_var( CMAKE_${_lang}_FLAGS )
-
- foreach( _btype NONE DEBUG BIT PRODUCTION RELEASE RELWITHDEBINFO )
- ecbuild_debug_var( CMAKE_${_lang}_FLAGS_${_btype} )
- endforeach()
-
endif()
+ # Apply user or toolchain specified compilation flag overrides (NOT written to cache)
+
foreach( _btype NONE DEBUG BIT PRODUCTION RELEASE RELWITHDEBINFO )
if( DEFINED ECBUILD_${_lang}_FLAGS_${_btype} )
+ ecbuild_debug( "ecbuild_compiler_flags(${_lang}): overriding CMAKE_${_lang}_FLAGS_${_btype} with ${ECBUILD_${_lang}_FLAGS_${_btype}}")
set( CMAKE_${_lang}_FLAGS_${_btype} ${ECBUILD_${_lang}_FLAGS_${_btype}} )
endif()
mark_as_advanced( CMAKE_${_lang}_FLAGS_${_btype} )
endforeach()
if( DEFINED ECBUILD_${_lang}_FLAGS )
+ ecbuild_debug( "ecbuild_compiler_flags(${_lang}): overriding CMAKE_${_lang}_FLAGS with ${ECBUILD_${_lang}_FLAGS}")
set( CMAKE_${_lang}_FLAGS "${ECBUILD_${_lang}_FLAGS}" )
endif()
mark_as_advanced( CMAKE_${_lang}_FLAGS )
if( DEFINED ECBUILD_${_lang}_LINK_FLAGS )
+ ecbuild_debug( "ecbuild_compiler_flags(${_lang}): overriding CMAKE_${_lang}_LINK_FLAGS with ${ECBUILD_${_lang}_LINK_FLAGS}")
set( CMAKE_${_lang}_LINK_FLAGS "${ECBUILD_${_lang}_LINK_FLAGS}" )
endif()
mark_as_advanced( CMAKE_${_lang}_LINK_FLAGS )
+ ecbuild_debug_var( CMAKE_${_lang}_FLAGS )
+ foreach( _btype NONE DEBUG BIT PRODUCTION RELEASE RELWITHDEBINFO )
+ ecbuild_debug_var( CMAKE_${_lang}_FLAGS_${_btype} )
+ endforeach()
+
endmacro()
-#-----------------------------------------------------------------------------------------------------------------------
+##############################################################################
+#.rst:
+#
+# Using custom compilation flags
+# ==============================
+#
+# If compilation flags need to be controlled on a per source file basis,
+# ecBuild supports defining custom rules in a CMake or JSON file.
+#
+# When using this approach, *default compilation flags are NOT loaded*!
+#
+# Overriding compilation flags on a per source file basis using CMake rules
+# -------------------------------------------------------------------------
+#
+# Compiler flags can be overridden on a per source file basis by setting the
+# CMake variable ``ECBUILD_COMPILE_FLAGS`` to the *full path* of a CMake file
+# defining the override rules. If set, ``<PNAME>_ECBUILD_COMPILE_FLAGS``
+# takes precendence and ``ECBUILD_COMPILE_FLAGS`` is ignored, allowing for
+# rules that only apply to a subproject (e.g. in a bundle).
+#
+# Flags can be overridden in 3 different ways:
+#
+# 1. By defining project specific flags for a language and (optionally)
+# build type e.g. ::
+#
+# set(<PNAME>_Fortran_FLAGS "...") # common flags for all build types
+# set(<PNAME>_Fortran_FLAGS_DEBUG "...") # only for DEBUG build type
+#
+# 2. By defining source file specific flags which are *combined* with the
+# project and target specific flags ::
+#
+# set_source_files_properties(<source>
+# PROPERTIES COMPILE_FLAGS "..." # common flags for all build types
+# COMPILE_FLAGS_DEBUG "...") # only for DEBUG build type
+#
+# 3. By defining source file specific flags which *override* the project and
+# target specific flags ::
+#
+# set_source_files_properties(<source>
+# PROPERTIES OVERRIDE_COMPILE_FLAGS "..."
+# OVERRIDE_COMPILE_FLAGS_DEBUG "...")
+#
+# See ``examples/override-compile-flags`` in the ecBuild source tree for a
+# complete example using this technique.
+#
+# Overriding compilation flags on a per source file basis using JSON rules
+# ------------------------------------------------------------------------
+#
+# Compiler flags can be overridden on a per source file basis by setting the
+# CMake variable ``ECBUILD_SOURCE_FLAGS`` to the *full path* of a JSON file
+# defining the override rules. If set, ``<PNAME>_ECBUILD_SOURCE_FLAGS``
+# takes precendence and ``ECBUILD_SOURCE_FLAGS`` is ignored, allowing for
+# rules that only apply to a subproject (e.g. in a bundle).
+#
+# The JSON file lists shell glob patterns and the rule to apply to each source
+# file matching the pattern, defined as an array ``[op, flag1, ...]``
+# containing an operator followed by one or more flags. Valid operators are:
+#
+# :+: Add the flags to the default compilation flags for matching files
+# :=: Set the flags for matching files, disregarding default compilation flags
+# :/: Remove the flags from the default compilation flags for matching files
+#
+# Rules can be nested to e.g. only apply to a subdirectory by setting the rule
+# to a dictionary, which will only apply to source files matching its pattern.
+#
+# An example JSON file demonstrating different rule types is given below: ::
+#
+# {
+# "*" : [ "+", "-g0" ],
+# "*.cxx" : [ "+", "-cxx11" ],
+# "*.f90" : [ "+", "-pipe" ],
+# "foo.c" : [ "+", "-O0" ],
+# "foo.cc" : [ "+", "-O2", "-pipe" ],
+# "bar/*": {
+# "*.f90" : [ "=", "-O1" ]
+# },
+# "baz/*": {
+# "*.f90" : [ "/", "-pipe" ],
+# "*.f90" : [ "/", "-O2" ],
+# "*.f90" : [ "+", "-O3" ]
+# }
+# }
+#
+# See ``examples/override-compile-flags`` in the ecBuild source tree for a
+# complete example using this technique.
+#
+##############################################################################
-### OVERRIDE Compiler FLAGS (we override because CMake forcely defines them) -- see ecbuild_compiler_flags() macro
+# Custom (project specific) compilation flags enabled?
+foreach( _flags COMPILE SOURCE )
+ if( ${PROJECT_NAME_CAPS}_ECBUILD_${_flags}_FLAGS )
+ if ( ECBUILD_${_flags}_FLAGS )
+ ecbuild_debug( "Override ECBUILD_${_flags}_FLAGS (${ECBUILD_${_flags}_FLAGS}) with ${PROJECT_NAME} specific flags (${${PROJECT_NAME_CAPS}_ECBUILD_${_flags}_FLAGS})" )
+ else()
+ ecbuild_debug( "Use ${PROJECT_NAME} specific ECBUILD_${_flags}_FLAGS (${${PROJECT_NAME_CAPS}_ECBUILD_${_flags}_FLAGS})" )
+ endif()
+ set( ECBUILD_${_flags}_FLAGS ${${PROJECT_NAME_CAPS}_ECBUILD_${_flags}_FLAGS} )
+ endif()
+ # Ensure ECBUILD_${_flags}_FLAGS is a valid file path
+ if( DEFINED ECBUILD_${_flags}_FLAGS AND NOT EXISTS ${ECBUILD_${_flags}_FLAGS} )
+ ecbuild_warn( "ECBUILD_${_flags}_FLAGS points to non-existent file ${ECBUILD_${_flags}_FLAGS} and will be ignored" )
+ unset( ECBUILD_${_flags}_FLAGS )
+ unset( ECBUILD_${_flags}_FLAGS CACHE )
+ endif()
+endforeach()
+if( ECBUILD_COMPILE_FLAGS )
+ include( "${ECBUILD_COMPILE_FLAGS}" )
+endif()
foreach( _lang C CXX Fortran )
if( CMAKE_${_lang}_COMPILER_LOADED )
- ecbuild_compiler_flags( ${_lang} )
+
+ # Clear default compilation flags potentially inherited from parent scope
+ # when using custom compilation flags
+ if( ECBUILD_SOURCE_FLAGS OR ECBUILD_COMPILE_FLAGS )
+ set(CMAKE_${_lang}_FLAGS "")
+ foreach(_btype ALL RELEASE RELWITHDEBINFO PRODUCTION BIT DEBUG)
+ set(CMAKE_${_lang}_FLAGS_${_btype} "")
+ endforeach()
+ # Load default compilation flags only if custom compilation flags not enabled
+ else()
+ ecbuild_compiler_flags( ${_lang} )
+ endif()
+
endif()
endforeach()
-### OVERRIDE Linker FLAGS per object type (we override because CMake forcely defines them)
-
+# Apply user or toolchain specified linker flag overrides per object type (NOT written to cache)
foreach( _btype NONE DEBUG BIT PRODUCTION RELEASE RELWITHDEBINFO )
foreach( _obj EXE SHARED MODULE )
@@ -91,7 +209,3 @@ foreach( _btype NONE DEBUG BIT PRODUCTION RELEASE RELWITHDEBINFO )
endforeach()
endforeach()
-
-#-----------------------------------------------------------------------------------------------------------------------
-
-mark_as_advanced( CMAKE_C_FLAGS_BIT )
diff --git a/cmake/ecbuild_config.h.in b/cmake/ecbuild_config.h.in
index dd8e9cd..df9eb91 100644
--- a/cmake/ecbuild_config.h.in
+++ b/cmake/ecbuild_config.h.in
@@ -129,6 +129,12 @@
#cmakedefine EC_ATTRIBUTE_CONSTRUCTOR_INITS_ARGV
#cmakedefine EC_HAVE_PROCFS
+
+/* --- dl library support --- */
+
+#cmakedefine EC_HAVE_DLFCN_H
+#cmakedefine EC_HAVE_DLADDR
+
/* --- c compiler support --- */
#cmakedefine EC_HAVE_C_INLINE
diff --git a/cmake/ecbuild_declare_project.cmake b/cmake/ecbuild_declare_project.cmake
index 1c2e93b..c95e8e3 100644
--- a/cmake/ecbuild_declare_project.cmake
+++ b/cmake/ecbuild_declare_project.cmake
@@ -28,24 +28,27 @@
# :<PNAME>_MINOR_VERSION: minor version number
# :<PNAME>_PATCH_VERSION: patch version number
# :INSTALL_BIN_DIR: relative install directory for executables
-# (default: ``bin``)
# :INSTALL_LIB_DIR: relative install directory for libraries
-# (default: ``lib``)
# :INSTALL_INCLUDE_DIR: relative install directory for include files
-# (default: ``include``)
# :INSTALL_DATA_DIR: relative install directory for data
-# (default: ``share/<project_name>``)
# :INSTALL_CMAKE_DIR: relative install directory for CMake files
-# (default: ``share/<project_name>/cmake``)
+#
+# Customising install locations
+# -----------------------------
#
# The relative installation directories of components can be customised by
# setting the following CMake variables on the command line or in cache:
#
-# :<PNAME>_INSTALL_BIN_DIR: directory for installing executables
-# :<PNAME>_INSTALL_LIB_DIR: directory for installing libraries
-# :<PNAME>_INSTALL_INCLUDE_DIR: directory for installing include files
-# :<PNAME>_INSTALL_DATA_DIR: directory for installing data
-# :<PNAME>_INSTALL_CMAKE_DIR: directory for installing CMake files
+# :INSTALL_BIN_DIR: directory for installing executables
+# (default: ``bin``)
+# :INSTALL_LIB_DIR: directory for installing libraries
+# (default: ``lib``)
+# :INSTALL_INCLUDE_DIR: directory for installing include files
+# (default: ``include``)
+# :INSTALL_DATA_DIR: directory for installing data
+# (default: ``share/<project_name>``)
+# :INSTALL_CMAKE_DIR: directory for installing CMake files
+# (default: ``share/<project_name>/cmake``)
#
# Using *relative* paths is recommended, which are interpreted relative to the
# ``CMAKE_INSTALL_PREFIX``. Using absolute paths makes the build
@@ -109,11 +112,22 @@ macro( ecbuild_declare_project )
# install dirs for this project
- set( INSTALL_BIN_DIR bin )
- set( INSTALL_LIB_DIR lib )
- set( INSTALL_INCLUDE_DIR include )
- set( INSTALL_DATA_DIR share/${PROJECT_NAME} )
- set( INSTALL_CMAKE_DIR share/${PROJECT_NAME}/cmake )
+ # Use defaults unless values are already present in cache
+ if( NOT INSTALL_BIN_DIR )
+ set( INSTALL_BIN_DIR bin )
+ endif()
+ if( NOT INSTALL_LIB_DIR )
+ set( INSTALL_LIB_DIR lib )
+ endif()
+ if( NOT INSTALL_INCLUDE_DIR )
+ set( INSTALL_INCLUDE_DIR include )
+ endif()
+ if( NOT INSTALL_DATA_DIR )
+ set( INSTALL_DATA_DIR share/${PROJECT_NAME} )
+ endif()
+ if( NOT INSTALL_CMAKE_DIR )
+ set( INSTALL_CMAKE_DIR share/${PROJECT_NAME}/cmake )
+ endif()
mark_as_advanced( INSTALL_BIN_DIR )
mark_as_advanced( INSTALL_LIB_DIR )
@@ -121,10 +135,11 @@ macro( ecbuild_declare_project )
mark_as_advanced( INSTALL_DATA_DIR )
mark_as_advanced( INSTALL_CMAKE_DIR )
- # overrides of install dirs
+ # overrides of install dirs (deprecated in ecBuild 2.4.0)
foreach( p LIB BIN INCLUDE DATA CMAKE )
if( ${PNAME}_INSTALL_${p}_DIR )
+ ecbuild_deprecate( "Use of ${PNAME}_INSTALL_${p}_DIR is deprecated and will be removed in a future release. Use INSTALL_${p}_DIR instead." )
set( INSTALL_${p}_DIR ${${PNAME}_INSTALL_${p}_DIR} )
endif()
endforeach()
diff --git a/cmake/ecbuild_download_resource.cmake b/cmake/ecbuild_download_resource.cmake
index 3b2f90e..5d394f5 100644
--- a/cmake/ecbuild_download_resource.cmake
+++ b/cmake/ecbuild_download_resource.cmake
@@ -25,6 +25,7 @@ function( ecbuild_download_resource _p_OUT _p_URL )
if( NOT EXISTS ${_p_OUT} )
find_program( CURL_PROGRAM curl )
+ mark_as_advanced(CURL_PROGRAM)
if( CURL_PROGRAM )
execute_process( COMMAND ${CURL_PROGRAM} --silent --show-error --fail --output ${_p_OUT} ${_p_URL}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} RESULT_VARIABLE CMD_RESULT )
diff --git a/cmake/ecbuild_find_python.cmake b/cmake/ecbuild_find_python.cmake
index 0273951..d3cf377 100644
--- a/cmake/ecbuild_find_python.cmake
+++ b/cmake/ecbuild_find_python.cmake
@@ -28,6 +28,10 @@
# NO_LIBS : optional
# only search for the Python interpreter, not the libraries
#
+# Unless ``NO_LIBS`` is set, the ``python-config`` utility, if found, is used
+# to determine the Python include directories, libraries and link line. Set the
+# CMake variable ``PYTHON_NO_CONFIG`` to use CMake's FindPythonLibs instead.
+#
# Output variables
# ----------------
#
@@ -62,38 +66,34 @@ function( ecbuild_find_python )
if(_p_UNPARSED_ARGUMENTS)
ecbuild_critical("Unknown keywords given to ecbuild_find_python(): \"${_p_UNPARSED_ARGUMENTS}\"")
endif()
+ if( _p_REQUIRED )
+ set( _p_REQUIRED REQUIRED )
+ else()
+ unset( _p_REQUIRED )
+ endif()
# find python executable
- find_package( PythonInterp )
-
- if( NOT PYTHONINTERP_FOUND AND _p_REQUIRED )
- ecbuild_error( "Failed to find any Python interpreter (REQUIRED)" )
+ # Search first without specifying the version, since doing so gives preference to the specified
+ # version even though a never version of the interpreter may be available
+ find_package( PythonInterp ${_p_REQUIRED} )
+
+ # If no suitable version was found, search again with the version specified
+ if( PYTHONINTERP_FOUND AND _p_VERSION )
+ if( _p_VERSION VERSION_GREATER "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH}" )
+ ecbuild_debug( "ecbuild_find_python: Found Python interpreter version ${PYTHON_VERSION_STRING} at ${PYTHON_EXECUTABLE}, however version ${_p_VERSION} is required. Searching again..." )
+ unset( PYTHONINTERP_FOUND )
+ unset( PYTHON_EXECUTABLE )
+ unset( PYTHON_EXECUTABLE CACHE )
+ unset( PYTHON_VERSION_MAJOR )
+ unset( PYTHON_VERSION_MINOR )
+ unset( PYTHON_VERSION_PATCH )
+ unset( PYTHON_VERSION_STRING )
+ find_package( PythonInterp "${_p_VERSION}" ${_p_REQUIRED} )
+ endif()
endif()
- # find python version
- # execute_process( COMMAND ${PYTHON_EXECUTABLE} -V ERROR_VARIABLE _version RESULT_VARIABLE _return ERROR_STRIP_TRAILING_WHITESPACE)
- # if( NOT _return )
- # string(REGEX REPLACE ".*([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1.\\2.\\3" PYTHON_VERSION ${_version} )
- # endif()
- # endif()
-
- # ecbuild_debug( "Python version ${PYTHON_VERSION_STRING}" )
- # ecbuild_debug_var(PYTHON_VERSION_MAJOR)
- # ecbuild_debug_var(PYTHON_VERSION_MINOR)
- # ecbuild_debug_var(PYTHON_VERSION_PATCH)
-
- if( PYTHONINTERP_FOUND AND DEFINED _p_VERSION )
- if( _p_VERSION VERSION_GREATER "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH}" )
- set( PYTHONINTERP_FOUND 0 )
- set( PYTHON_EXECUTABLE "PYTHON_EXECUTABLE-NOTFOUND" )
- if( _p_REQUIRED )
- ecbuild_critical( "Required python version at least ${_p_VERSION} but found only ${PYTHON_VERSION_STRING}" )
- else()
- ecbuild_warn( "Looking for python version at least ${_p_VERSION} but found only ${PYTHON_VERSION_STRING}\nMarking Python as NOTFOUND" )
- endif()
- endif()
- endif()
+ set( __required_vars PYTHONINTERP_FOUND )
if( PYTHONINTERP_FOUND )
ecbuild_debug( "ecbuild_find_python: Found Python interpreter version ${PYTHON_VERSION_STRING} at ${PYTHON_EXECUTABLE}" )
@@ -104,15 +104,24 @@ function( ecbuild_find_python )
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
ecbuild_debug( "ecbuild_find_python: PYTHON_SITE_PACKAGES=${PYTHON_SITE_PACKAGES}" )
-
endif()
+
if( PYTHONINTERP_FOUND AND NOT _p_NO_LIBS )
+ list( APPEND __required_vars PYTHONLIBS_FOUND PYTHON_LIBS_WORKING )
+
# find python config
if( PYTHON_EXECUTABLE AND EXISTS ${PYTHON_EXECUTABLE}-config )
set(PYTHON_CONFIG_EXECUTABLE ${PYTHON_EXECUTABLE}-config CACHE PATH "" FORCE)
else()
- find_program( PYTHON_CONFIG_EXECUTABLE NAMES python-config python-config${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} )
+ get_filename_component( __python_bin_dir ${PYTHON_EXECUTABLE} PATH )
+ find_program( PYTHON_CONFIG_EXECUTABLE
+ NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH
+ NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH
+ HINTS ${__python_bin_dir}
+ NAMES python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}-config
+ python${PYTHON_VERSION_MAJOR}-config
+ python-config )
endif()
ecbuild_debug_var( PYTHON_CONFIG_EXECUTABLE )
@@ -122,31 +131,58 @@ function( ecbuild_find_python )
# The OpenBSD python packages have python-config's
# that don't reliably report linking flags that will work.
- if( PYTHON_CONFIG_EXECUTABLE AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD" )
+ if( PYTHON_CONFIG_EXECUTABLE AND NOT ( PYTHON_NO_CONFIG OR ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD" ) )
ecbuild_debug( "ecbuild_find_python: Searching for Python include directories and libraries using ${PYTHON_CONFIG_EXECUTABLE}" )
- execute_process(COMMAND "${PYTHON_CONFIG_EXECUTABLE}" --ldflags
- OUTPUT_VARIABLE PYTHON_LIBRARIES
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET)
+ if( NOT PYTHON_LIBRARY )
+ execute_process(COMMAND "${PYTHON_CONFIG_EXECUTABLE}" --prefix
+ OUTPUT_VARIABLE PYTHON_PREFIX
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+
+ execute_process(COMMAND "${PYTHON_CONFIG_EXECUTABLE}" --ldflags
+ OUTPUT_VARIABLE PYTHON_LIBRARY
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+
+ # Prepend -L and and set the RPATH to the lib directory under the
+ # Python install prefix unless it is a standard system prefix path
+ if( PYTHON_LIBRARY AND PYTHON_PREFIX AND NOT CMAKE_SYSTEM_PREFIX_PATH MATCHES ${PYTHON_PREFIX} )
+ set( PYTHON_LIBRARY "-L${PYTHON_PREFIX}/lib -Wl,-rpath,${PYTHON_PREFIX}/lib ${PYTHON_LIBRARY}" )
+ endif()
+
+ set( PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_DIR}" CACHE PATH
+ "Path to where Python.h is found" FORCE )
+ endif()
+
+ if(DEFINED PYTHON_INCLUDE_PATH AND NOT DEFINED PYTHON_INCLUDE_DIR)
+ set( PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_PATH}" CACHE PATH
+ "Path to where Python.h is found" FORCE )
+ elseif( NOT PYTHON_INCLUDE_DIR )
+ execute_process(COMMAND "${PYTHON_CONFIG_EXECUTABLE}" --includes
+ OUTPUT_VARIABLE PYTHON_INCLUDE_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
- execute_process(COMMAND "${PYTHON_CONFIG_EXECUTABLE}" --includes
- OUTPUT_VARIABLE PYTHON_INCLUDE_DIRS
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET)
+ string(REGEX REPLACE "^[-I]" "" PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_DIR}")
+ string(REGEX REPLACE "[ ]-I" " " PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_DIR}")
- string(REGEX REPLACE "^[-I]" "" PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIRS}")
- string(REGEX REPLACE "[ ]-I" " " PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIRS}")
+ separate_arguments(PYTHON_INCLUDE_DIR)
+ set( PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_DIR}" CACHE PATH
+ "Path to where Python.h is found" FORCE )
- separate_arguments(PYTHON_INCLUDE_DIRS)
+ endif()
+
+ set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
+ set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
+
+ find_package_handle_standard_args( PythonLibs DEFAULT_MSG
+ PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES )
else() # revert to finding pythonlibs the standard way (cmake macro)
- ecbuild_debug( "ecbuild_find_python: Searching for Python include directories and libraries using find_package(PythonLibs)" )
+ ecbuild_debug( "ecbuild_find_python: Searching for Python include directories and libraries using find_package( PythonLibs ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH} ${_p_REQUIRED} )" )
- find_package(PythonLibs)
- if( PYTHON_INCLUDE_PATH AND NOT PYTHON_INCLUDE_DIRS )
- set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_PATH}")
- endif()
+ find_package( PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH}" ${_p_REQUIRED} )
endif()
@@ -159,25 +195,18 @@ function( ecbuild_find_python )
try_compile( PYTHON_LIBS_WORKING ${CMAKE_CURRENT_BINARY_DIR}
${__test_python}
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${PYTHON_INCLUDE_DIRS}"
- LINK_LIBRARIES ${PYTHON_LIBRARIES} )
-
- # set output variables
-
- find_package_handle_standard_args( PythonLibs DEFAULT_MSG
- PYTHON_INCLUDE_DIRS PYTHON_LIBRARIES PYTHON_LIBS_WORKING )
- ecbuild_debug( "ecbuild_find_python: PYTHON_INCLUDE_DIRS=${PYTHON_INCLUDE_DIRS}" )
- ecbuild_debug( "ecbuild_find_python: PYTHON_LIBRARIES=${PYTHON_LIBRARIES}" )
-
- endif()
+ LINK_LIBRARIES ${PYTHON_LIBRARIES}
+ OUTPUT_VARIABLE __try_compile_output )
+ if( NOT PYTHON_LIBS_WORKING )
+ ecbuild_debug( "ecbuild_find_python: trying to link executable with Python libraries failed\n${__try_compile_output}" )
+ endif()
- # Also set PYTHON_FOUND and Python_FOUND for compatibility with ecbuild_add_option
- if( PYTHONLIBS_FOUND )
- set( PYTHON_FOUND 1 )
- set( Python_FOUND 1 )
endif()
endif()
+ find_package_handle_standard_args( Python DEFAULT_MSG ${__required_vars} )
+
ecbuild_debug_var( PYTHONINTERP_FOUND )
ecbuild_debug_var( PYTHON_FOUND )
ecbuild_debug_var( PYTHON_EXECUTABLE )
diff --git a/cmake/ecbuild_generate_fortran_interfaces.cmake b/cmake/ecbuild_generate_fortran_interfaces.cmake
index d586248..93c7414 100644
--- a/cmake/ecbuild_generate_fortran_interfaces.cmake
+++ b/cmake/ecbuild_generate_fortran_interfaces.cmake
@@ -12,7 +12,7 @@
# ecbuild_generate_fortran_interfaces
# ===================================
#
-# Generates interfaces form the Fortran source files. ::
+# Generates interfaces from the Fortran source files. ::
#
# ecbuild_generate_fortran_interfaces()
#
diff --git a/cmake/ecbuild_get_cxx11_flags.cmake b/cmake/ecbuild_get_cxx11_flags.cmake
index 47d0e1a..a97fe11 100644
--- a/cmake/ecbuild_get_cxx11_flags.cmake
+++ b/cmake/ecbuild_get_cxx11_flags.cmake
@@ -23,7 +23,7 @@ function( ecbuild_get_cxx11_flags CXX11_FLAGS )
include(CheckCXXCompilerFlag)
- # On older cmake versions + newer compilers,
+ # On older cmake versions + newer compilers,
# the given version of CheckCXXCompilerFlags does not quite work.
if(CMAKE_VERSION VERSION_LESS 2.8.9)
macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
@@ -52,7 +52,8 @@ function( ecbuild_get_cxx11_flags CXX11_FLAGS )
check_cxx_compiler_flag(-std=c++11 has_std_cpp11)
check_cxx_compiler_flag(-std=c++0x has_std_cpp0x)
- if(MINGW)
+ check_cxx_compiler_flag(-hstd=c++11 has_hstd_cpp11)
+ if(MINGW)
check_cxx_compiler_flag(-std=gnu++11 has_std_gnupp11)
check_cxx_compiler_flag(-std=gnu++0x has_std_gnupp0x)
endif(MINGW)
@@ -60,7 +61,9 @@ function( ecbuild_get_cxx11_flags CXX11_FLAGS )
set(${CXX11_FLAGS} "-std=gnu++11" PARENT_SCOPE)
elseif(has_std_gnupp0x)
set(${CXX11_FLAGS} "-std=gnu++0x" PARENT_SCOPE)
- elseif(has_std_cpp11)
+ elseif(has_hstd_cpp11)
+ set(${CXX11_FLAGS} "-hstd=c++11" PARENT_SCOPE)
+ elseif(has_std_cpp11)
set(${CXX11_FLAGS} "-std=c++11" PARENT_SCOPE)
elseif(has_std_cpp0x)
set(${CXX11_FLAGS} "-std=c++0x" PARENT_SCOPE)
diff --git a/cmake/ecbuild_get_test_data.cmake b/cmake/ecbuild_get_test_data.cmake
index c19a760..d908399 100644
--- a/cmake/ecbuild_get_test_data.cmake
+++ b/cmake/ecbuild_get_test_data.cmake
@@ -20,6 +20,7 @@ function( _download_test_data _p_NAME _p_DIRNAME )
#endif()
find_program( CURL_PROGRAM curl )
+ mark_as_advanced(CURL_PROGRAM)
if( CURL_PROGRAM )
diff --git a/cmake/ecbuild_install_project.cmake b/cmake/ecbuild_install_project.cmake
index 2ba472e..5e26bea 100644
--- a/cmake/ecbuild_install_project.cmake
+++ b/cmake/ecbuild_install_project.cmake
@@ -233,6 +233,18 @@ macro( ecbuild_install_project )
endif()
endforeach()
+ # Deduplicate TPL includes, libs and definitions
+ # The same TPL may indirectly be pulled in multiple times!
+ if( ${PNAME}_TPL_INCLUDE_DIRS )
+ list( REMOVE_DUPLICATES ${PNAME}_TPL_INCLUDE_DIRS )
+ endif()
+ if( ${PNAME}_TPL_LIBRARIES )
+ list( REMOVE_DUPLICATES ${PNAME}_TPL_LIBRARIES )
+ endif()
+ if( ${PNAME}_TPL_DEFINITIONS )
+ list( REMOVE_DUPLICATES ${PNAME}_TPL_DEFINITIONS )
+ endif()
+
# Generate the project .cmake config files
# All variables here must be (sub)project specific in order to work within bundles
if ( NOT ECBUILD_SKIP_${PNAME}_EXPORT )
@@ -278,8 +290,6 @@ macro( ecbuild_install_project )
set( CONF_TPL_LIBRARIES ${${PNAME}_TPL_LIBRARIES} )
endif()
- # project-config.cmake @ build tree
-
set( CONF_TPLS ${${PNAME}_TPLS} )
set( CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}" )
@@ -288,18 +298,11 @@ macro( ecbuild_install_project )
endif()
set( CONF_TPL_INCLUDE_DIRS "" )
- foreach( _tpl ${${PNAME}_TPLS} )
- string( TOUPPER ${_tpl} TPL )
- if( ${_tpl}_INCLUDE_DIRS )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${_tpl}_INCLUDE_DIRS} )
- elseif( ${_tpl}_INCLUDE_DIR )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${_tpl}_INCLUDE_DIR} )
- elseif( ${TPL}_INCLUDE_DIRS )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${TPL}_INCLUDE_DIRS} )
- elseif( ${TPL}_INCLUDE_DIR )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${TPL}_INCLUDE_DIR} )
- endif()
- endforeach()
+ if( ${PNAME}_TPL_INCLUDE_DIRS )
+ set( CONF_TPL_INCLUDE_DIRS ${${PNAME}_TPL_INCLUDE_DIRS} )
+ endif()
+
+ # Generate <project>-import.cmake (if it exists)
set( CONF_IMPORT_FILE "${LNAME}-import.cmake" )
@@ -323,11 +326,17 @@ macro( ecbuild_install_project )
ecbuild_debug( "No ${CONF_IMPORT_FILE} found in ${PROJECT_SOURCE_DIR}" )
endif()
+ # Generate <project>-config.cmake for use from the build tree
+
set( _lname_config "${PROJECT_BINARY_DIR}/${LNAME}-config.cmake")
+ # Include directories (may) reference source and build tree and the
+ # config file is marked as coming from a build tree
set( _is_build_dir_export ON )
configure_file( "${_template_config}" "${_lname_config}" @ONLY )
+ # Generate <project>-config.cmake.tpls (if there are any TPLs)
+
file( REMOVE ${_lname_config}.tpls.in )
foreach( _tpl ${${PNAME}_TPLS} )
@@ -360,28 +369,13 @@ macro( ecbuild_install_project )
install( FILES "${_lname_config}.tpls" DESTINATION "${INSTALL_CMAKE_DIR}" )
endif()
- # project-config.cmake @ install tree
+ # Generate <project>-config.cmake for use in the install tree
+ # Compute path to the include dir relative to the project's CMake dir
+ # where <project>-config.cmake is installed to
file( RELATIVE_PATH REL_INCLUDE_DIR "${${PNAME}_FULL_INSTALL_CMAKE_DIR}" "${${PNAME}_FULL_INSTALL_INCLUDE_DIR}" )
set( CONF_INCLUDE_DIRS "\${${PNAME}_CMAKE_DIR}/${REL_INCLUDE_DIR}" )
- set( CONF_TPL_INCLUDE_DIRS "" )
- foreach( _tpl ${${PNAME}_TPLS} )
- string( TOUPPER ${_tpl} TPL )
- if( ${TPL}_FULL_INSTALL_INCLUDE_DIR )
- list( APPEND CONF_TPL_INCLUDE_DIRS "\${${PNAME}_CMAKE_DIR}/${REL_INCLUDE_DIR}" )
- endif()
- if( ${_tpl}_INCLUDE_DIRS )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${_tpl}_INCLUDE_DIRS} )
- elseif( ${_tpl}_INCLUDE_DIR )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${_tpl}_INCLUDE_DIR} )
- elseif( ${TPL}_INCLUDE_DIRS )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${TPL}_INCLUDE_DIRS} )
- elseif( ${TPL}_INCLUDE_DIR )
- list( APPEND CONF_TPL_INCLUDE_DIRS ${${TPL}_INCLUDE_DIR} )
- endif()
- endforeach()
-
set( _is_build_dir_export OFF )
configure_file( "${_template_config}" "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${LNAME}-config.cmake" @ONLY )
install( FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${LNAME}-config.cmake" DESTINATION "${INSTALL_CMAKE_DIR}" )
diff --git a/cmake/ecbuild_log.cmake b/cmake/ecbuild_log.cmake
index ec99495..f982d07 100644
--- a/cmake/ecbuild_log.cmake
+++ b/cmake/ecbuild_log.cmake
@@ -20,7 +20,9 @@
# :ecbuild_warn: logs a ``WARNING`` message if log level <= ``WARN``
# :ecbuild_error: logs a ``SEND_ERROR`` message if log level <= ``ERROR``
# :ecbuild_critical: logs a ``FATAL_ERROR`` message if log level <= ``CRITICAL``
-# :ecbuild_deprecate: logs a ``DEPRECATION`` message
+# :ecbuild_deprecate: logs a ``DEPRECATION`` message as a warning
+# enable CMAKE_ERROR_DEPRECATED to raise an error instead
+# disable CMAKE_WARN_DEPRECATED to hide deprecations
#
# Furthermore there are auxilliary functions for outputting CMake variables,
# CMake lists and environment variables if the log level is ``DEBUG``:
@@ -50,10 +52,6 @@
# ECBUILD_NO_COLOUR : bool
# if set, does not colour log output (by default log output is coloured)
#
-# ECBUILD_NO_DEPRECATIONS : bool
-# if set, does not output deprecation messages (only set this if you *really*
-# know what you are doing!)
-#
# Usage
# -----
#
@@ -113,6 +111,9 @@ endif()
if( NOT DEFINED ECBUILD_LOG_FILE )
set( ECBUILD_LOG_FILE ${CMAKE_BINARY_DIR}/ecbuild.log )
endif()
+if( NOT DEFINED CMAKE_ERROR_DEPRECATED AND NOT DEFINED CMAKE_WARN_DEPRECATED )
+ set( CMAKE_WARN_DEPRECATED ON )
+endif()
##############################################################################
@@ -167,7 +168,15 @@ endfunction( ecbuild_error )
function( ecbuild_deprecate )
string(REPLACE ";" " " MSG ${ARGV})
ecbuild_log(DEPRECATION "${MSG}")
- if( NOT ECBUILD_NO_DEPRECATIONS )
+ # DEPRECATION message type was only introduced in CMake 3.0, provide
+ # consistent behaviour for CMake < 3.0
+ if( CMAKE_VERSION VERSION_LESS 3.0 )
+ if( CMAKE_ERROR_DEPRECATED )
+ message(FATAL_ERROR "${BoldRed}DEPRECATION - ${MSG}${ColourReset}")
+ elseif( CMAKE_WARN_DEPRECATED )
+ message(WARNING "${Yellow}DEPRECATION - ${MSG}${ColourReset}")
+ endif()
+ else()
message(DEPRECATION "${BoldRed}${MSG}${ColourReset}")
endif()
endfunction( ecbuild_deprecate )
diff --git a/cmake/ecbuild_pkgconfig.cmake b/cmake/ecbuild_pkgconfig.cmake
index 6f62977..d839a86 100644
--- a/cmake/ecbuild_pkgconfig.cmake
+++ b/cmake/ecbuild_pkgconfig.cmake
@@ -275,7 +275,7 @@ endfunction(ecbuild_pkgconfig_include)
# ---------------
#
# The following CMake variables are used as default values for some of the
-# options listed above, where ``PNAME`` is the project name in upper case: ::
+# options listed above, where ``PNAME`` is the project name in upper case:
#
# :<PNAME>_LIBRARIES: list of libraries to export
# :<PNAME>_DESCRIPTION: package description
diff --git a/cmake/ecbuild_print_summary.cmake b/cmake/ecbuild_print_summary.cmake
index 4cf05cc..6fc70d0 100644
--- a/cmake/ecbuild_print_summary.cmake
+++ b/cmake/ecbuild_print_summary.cmake
@@ -59,6 +59,11 @@ macro( ecbuild_print_summary )
ecbuild_info( "build type : [${CMAKE_BUILD_TYPE}]" )
ecbuild_info( "timestamp : [${EC_BUILD_TIMESTAMP}]" )
ecbuild_info( "install prefix : [${CMAKE_INSTALL_PREFIX}]" )
+ ecbuild_info( " bin dir : [${${PNAME}_FULL_INSTALL_BIN_DIR}]" )
+ ecbuild_info( " lib dir : [${${PNAME}_FULL_INSTALL_LIB_DIR}]" )
+ ecbuild_info( " include dir : [${${PNAME}_FULL_INSTALL_INCLUDE_DIR}]" )
+ ecbuild_info( " data dir : [${${PNAME}_FULL_INSTALL_DATA_DIR}]" )
+ ecbuild_info( " cmake dir : [${${PNAME}_FULL_INSTALL_CMAKE_DIR}]" )
if( EC_LINK_DIR )
ecbuild_info( "links prefix : [${EC_LINK_DIR}]" )
endif()
@@ -66,7 +71,8 @@ macro( ecbuild_print_summary )
foreach( lang ${langs} )
ecbuild_info( "${lang} -- ${CMAKE_${lang}_COMPILER_ID} ${CMAKE_${lang}_COMPILER_VERSION}" )
- ecbuild_info( " compiler : ${CMAKE_${lang}_COMPILER} ${CMAKE_${lang}_FLAGS} ${CMAKE_${lang}_FLAGS_${CMAKE_BUILD_TYPE_CAPS}}" )
+ ecbuild_info( " compiler : ${CMAKE_${lang}_COMPILER}" )
+ ecbuild_info( " flags : ${CMAKE_${lang}_FLAGS} ${CMAKE_${lang}_FLAGS_${CMAKE_BUILD_TYPE_CAPS}} ${${PNAME}_${lang}_FLAGS} ${${PNAME}_${lang}_FLAGS_${CMAKE_BUILD_TYPE_CAPS}}" )
ecbuild_info( " link flags : ${CMAKE_${lang}_LINK_FLAGS}" )
endforeach()
diff --git a/cmake/ecbuild_remove_fortran_flags.cmake b/cmake/ecbuild_remove_fortran_flags.cmake
index 74c8832..3a80316 100644
--- a/cmake/ecbuild_remove_fortran_flags.cmake
+++ b/cmake/ecbuild_remove_fortran_flags.cmake
@@ -10,9 +10,9 @@
#.rst:
#
# ecbuild_remove_fortran_flags
-# =========================
+# ============================
#
-# Remove Fortran compiler flags from CMAKE_Fortran_FLAGS. ::
+# Remove Fortran compiler flags from ``CMAKE_Fortran_FLAGS``. ::
#
# ecbuild_remove_fortran_flags( <flag1> [ <flag2> ... ] [ BUILD <build> ] )
#
@@ -58,4 +58,3 @@ macro( ecbuild_remove_fortran_flags m_flags )
unset( _flags )
endmacro()
-
diff --git a/cmake/ecbuild_separate_sources.cmake b/cmake/ecbuild_separate_sources.cmake
index b56db63..00722ae 100644
--- a/cmake/ecbuild_separate_sources.cmake
+++ b/cmake/ecbuild_separate_sources.cmake
@@ -32,10 +32,11 @@
# If any file of the following group of extensions is present in the list of
# sources, the corresponding CMake variable is set:
#
-# :<target>_h_srcs: list of sources with extension .h, .hxx, .hh, .hpp, .H
-# :<target>_c_srcs: list of sources with extension .c
-# :<target>_cxx_srcs: list of sources with extension .cc, .cxx, .cpp, .C
-# :<target>_f_srcs: list of sources with extension .f, .F, .for, f77, .f90, .f95
+# :<target>_h_srcs: source files with extension .h, .hxx, .hh, .hpp, .H
+# :<target>_c_srcs: source files with extension .c
+# :<target>_cxx_srcs: source files with extension .cc, .cxx, .cpp, .C
+# :<target>_fortran_srcs: source files with extension .f, .F, .for, f77, .f90,
+# .f95, .F77, .F90, .F95
#
##############################################################################
@@ -60,32 +61,33 @@ macro( ecbuild_separate_sources )
endif()
foreach( src ${_PAR_SOURCES} )
- if(${src} MATCHES "(\\.h|\\.hxx|\\.hh|\\.hpp|\\.H)")
+ if(${src} MATCHES "(\\.h$|\\.hxx$|\\.hh$|\\.hpp$|\\.H$)")
list( APPEND ${_PAR_TARGET}_h_srcs ${src} )
endif()
endforeach()
foreach( src ${_PAR_SOURCES} )
- if(${src} MATCHES "(\\.c)")
+ if(${src} MATCHES "(\\.c$)")
list( APPEND ${_PAR_TARGET}_c_srcs ${src} )
endif()
endforeach()
foreach( src ${_PAR_SOURCES} )
- if(${src} MATCHES "(\\.cc|\\.cxx|\\.cpp|\\.C)")
+ if(${src} MATCHES "(\\.cc$|\\.cxx$|\\.cpp$|\\.C$)")
list( APPEND ${_PAR_TARGET}_cxx_srcs ${src} )
endif()
endforeach()
foreach( src ${_PAR_SOURCES} )
- if(${src} MATCHES "(\\.f|\\.F|\\.for|\\.f77|\\.f90|\\.f95)")
- list( APPEND ${_PAR_TARGET}_f_srcs ${src} )
+ if(${src} MATCHES "(\\.f$|\\.F$|\\.for$|\\.f77$|\\.f90$|\\.f95$|\\.f03$|\\.f08$|\\.F77$|\\.F90$|\\.F95$|\\.F03$|\\.F08$)")
+ list( APPEND ${_PAR_TARGET}_fortran_srcs ${src} )
endif()
endforeach()
+ set_source_files_properties( ${${_PAR_TARGET}_fortran_srcs} PROPERTIES LANGUAGE Fortran )
# ecbuild_debug_var( ${_PAR_TARGET}_h_srcs )
# ecbuild_debug_var( ${_PAR_TARGET}_c_srcs )
# ecbuild_debug_var( ${_PAR_TARGET}_cxx_srcs )
-# ecbuild_debug_var( ${_PAR_TARGET}_f_srcs )
+# ecbuild_debug_var( ${_PAR_TARGET}_fortran_srcs )
-endmacro( ecbuild_separate_sources )
+endmacro( ecbuild_separate_sources )
diff --git a/cmake/ecbuild_source_flags.cmake b/cmake/ecbuild_source_flags.cmake
index 2414765..a281f1d 100644
--- a/cmake/ecbuild_source_flags.cmake
+++ b/cmake/ecbuild_source_flags.cmake
@@ -23,8 +23,12 @@ function( ecbuild_source_flags OUT TARGET DEFAULT_FLAGS SOURCES )
endif()
execute_process( COMMAND ${PYTHON_EXECUTABLE} ${__gen_source_flags}
${ECBUILD_SOURCE_FLAGS} ${OUTFILE} "${DEFAULT_FLAGS}"
- ${SOURCES} "${__debug}" )
+ ${SOURCES} "${__debug}"
+ RESULT_VARIABLE __res )
+ if( __res GREATER 0 )
+ ecbuild_error( "ecbuild_source_flags: failed generating source flags for target ${TARGET} from ${ECBUILD_SOURCE_FLAGS}" )
+ endif()
set( ${OUT} ${OUTFILE} PARENT_SCOPE )
endfunction()
diff --git a/cmake/ecbuild_system.cmake b/cmake/ecbuild_system.cmake
index a4361f7..f02113e 100644
--- a/cmake/ecbuild_system.cmake
+++ b/cmake/ecbuild_system.cmake
@@ -187,6 +187,7 @@ if( PROJECT_NAME STREQUAL CMAKE_PROJECT_NAME )
include( ecbuild_add_cxx_flags )
include( ecbuild_add_cxx11_flags )
include( ecbuild_get_cxx11_flags )
+ include( ecbuild_check_fortran )
include( ecbuild_add_fortran_flags )
include( ecbuild_add_test )
include( ecbuild_add_resources )
@@ -211,6 +212,7 @@ if( PROJECT_NAME STREQUAL CMAKE_PROJECT_NAME )
include( ecbuild_git )
include( ecbuild_enable_fortran )
include( ecbuild_source_flags )
+ include( ecbuild_target_flags )
include( ecbuild_bundle )
include( ecbuild_pkgconfig )
include( ecbuild_cache )
diff --git a/cmake/ecbuild_target_flags.cmake b/cmake/ecbuild_target_flags.cmake
new file mode 100644
index 0000000..4c589af
--- /dev/null
+++ b/cmake/ecbuild_target_flags.cmake
@@ -0,0 +1,91 @@
+# (C) Copyright 1996-2016 ECMWF.
+#
+# This software is licensed under the terms of the Apache Licence Version 2.0
+# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+# In applying this licence, ECMWF does not waive the privileges and immunities
+# granted to it by virtue of its status as an intergovernmental organisation
+# nor does it submit to any jurisdiction.
+
+##############################################################################
+#.rst:
+#
+# ecbuild_target_flags
+# ====================
+#
+# Override compiler flags for a given target. ::
+#
+# ecbuild_target_flags( <target> <c_flags> <cxx_flags> <fortran_flags> )
+#
+# Required arguments:
+#
+# :target: Target name
+# :c_flags: Target specific C flags (can be empty)
+# :cxx_flags: Target specific CXX flags (can be empty)
+# :fortran_flags: Target specific Fortran flags (can be empty)
+#
+# There are 3 cases, only the first applicable case takes effect:
+#
+# 1. Use custom rules from user specified ``ECBUILD_COMPILE_FLAGS`` file and
+# append target specific flags.
+#
+# 2. Use JSON rules from user specified ``ECBUILD_SOURCE_FLAGS`` file and
+# append target specific flags.
+#
+# 3. Only the target specific flags are applied to all matching source files.
+#
+##############################################################################
+
+function( ecbuild_target_flags target c_flags cxx_flags fortran_flags )
+
+ get_property( languages GLOBAL PROPERTY ENABLED_LANGUAGES )
+
+ foreach( lang ${languages} )
+
+ string( TOLOWER ${lang} l )
+
+ if( ${target}_${l}_srcs )
+
+ # 1) Override compile flags from user specified CMake file
+ if( ECBUILD_COMPILE_FLAGS )
+
+ # Project specific flags for current language and optionally build type
+ set( pflags "${${PNAME}_${lang}_FLAGS} ${${PNAME}_${lang}_FLAGS_${CMAKE_BUILD_TYPE_CAPS}}" )
+
+ foreach( src ${${target}_${l}_srcs} )
+ get_property( oflags SOURCE ${src} PROPERTY OVERRIDE_COMPILE_FLAGS )
+ get_property( oflags_btype SOURCE ${src} PROPERTY OVERRIDE_COMPILE_FLAGS_${CMAKE_BUILD_TYPE_CAPS} )
+ # Override compile flags for source file?
+ if( oflags OR oflags_btype )
+ set_source_files_properties( ${src} PROPERTIES COMPILE_FLAGS "${oflags} ${oflags_btype}" )
+ ecbuild_debug( "ecbuild_target_flags(${target}): overriding flags for ${src} with '${oflags} ${oflags_btype}'" )
+ # Otherwise append source file specific flags to project specific and target specific flags
+ else()
+ get_property( flags SOURCE ${src} PROPERTY COMPILE_FLAGS )
+ get_property( flags_btype SOURCE ${src} PROPERTY COMPILE_FLAGS_${CMAKE_BUILD_TYPE_CAPS} )
+ set_source_files_properties( ${src} PROPERTIES COMPILE_FLAGS "${pflags} ${${l}_flags} ${flags} ${flags_btype}" )
+ ecbuild_debug( "ecbuild_target_flags(${target}): setting flags for ${src} to '${pflags} ${${l}_flags} ${flags} ${flags_btype}'" )
+ endif()
+ endforeach()
+
+ # 2) Override compile flags from user specified JSON file
+ elseif( ECBUILD_SOURCE_FLAGS )
+ ecbuild_source_flags( ${target}_${lang}_SOURCE_FLAGS
+ ${target}_${l}
+ "${${l}_flags}"
+ "${${target}_${l}_srcs}" )
+
+ ecbuild_debug("ecbuild_target_flags(${target}): setting source file ${lang} flags from ${${target}_${lang}_SOURCE_FLAGS}")
+ include( ${${target}_${lang}_SOURCE_FLAGS} )
+
+ # 3) Use target specific compile flags
+ elseif( ${l}_flags )
+
+ set_source_files_properties( ${${target}_${l}_srcs} PROPERTIES COMPILE_FLAGS "${${l}_flags}" )
+ ecbuild_debug("ecbuild_target_flags(${target}): setting flags for '${${target}_${l}_srcs}' to '${${l}_flags}'")
+
+ endif()
+ endif()
+
+ endforeach()
+
+endfunction()
diff --git a/cmake/ecbuild_use_package.cmake b/cmake/ecbuild_use_package.cmake
index 6bd2bed..c88bca8 100644
--- a/cmake/ecbuild_use_package.cmake
+++ b/cmake/ecbuild_use_package.cmake
@@ -177,6 +177,7 @@ macro( ecbuild_use_package )
# add as a subproject
set( ${pkgUPPER}_subproj_dir_ ${${pkgUPPER}_subproj_dir_} CACHE PATH "Path to ${_p_PROJECT} source directory" )
+ mark_as_advanced( ${pkgUPPER}_subproj_dir_ )
set( ECBUILD_PROJECTS ${ECBUILD_PROJECTS} ${_p_PROJECT} CACHE INTERNAL "" )
diff --git a/cmake/fortran_features/CheckFortranFeatures.cmake b/cmake/fortran_features/CheckFortranFeatures.cmake
new file mode 100644
index 0000000..992964f
--- /dev/null
+++ b/cmake/fortran_features/CheckFortranFeatures.cmake
@@ -0,0 +1,167 @@
+###############################################################################
+# checks
+set(Fortran_FEATURE_CHECK_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE INTERNAL "fortran file directory")
+
+MACRO(fortran_check_single_feature FEATURE_NAME FEATURE_NUMBER RESULT_VAR)
+ IF (NOT DEFINED ${RESULT_VAR})
+ SET(_bindir "${CMAKE_BINARY_DIR}/fortran_feature_tests/fortran_${FEATURE_NAME}")
+
+ IF (${FEATURE_NUMBER})
+ SET(_SRCFILE_BASE ${Fortran_FEATURE_CHECK_DIR}/${FEATURE_NAME}-N${FEATURE_NUMBER})
+ SET(_LOG_NAME "\"${FEATURE_NAME}\" (N${FEATURE_NUMBER})")
+ ELSE (${FEATURE_NUMBER})
+ SET(_SRCFILE_BASE ${Fortran_FEATURE_CHECK_DIR}/${FEATURE_NAME})
+ SET(_LOG_NAME "\"${FEATURE_NAME}\"")
+ ENDIF (${FEATURE_NUMBER})
+ ecbuild_info("Checking Fortran support for ${_LOG_NAME}")
+
+ SET(_SRCFILE "${_SRCFILE_BASE}.F90")
+ SET(_SRCFILE_FAIL "${_SRCFILE_BASE}_fail.F90")
+ SET(_SRCFILE_FAIL_COMPILE "${_SRCFILE_BASE}_fail_compile.F90")
+
+ IF (CROSS_COMPILING)
+ try_compile(${RESULT_VAR} "${_bindir}" "${_SRCFILE}")
+ IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ try_compile(${RESULT_VAR} "${_bindir}_fail" "${_SRCFILE_FAIL}")
+ ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ ELSE (CROSS_COMPILING)
+ try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
+ "${_bindir}" "${_SRCFILE}")
+ IF (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} TRUE)
+ ELSE (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} FALSE)
+ ENDIF (_COMPILE_RESULT_VAR AND NOT _RUN_RESULT_VAR)
+ IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
+ "${_bindir}_fail" "${_SRCFILE_FAIL}")
+ IF (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} TRUE)
+ ELSE (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
+ SET(${RESULT_VAR} FALSE)
+ ENDIF (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
+ ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
+ ENDIF (CROSS_COMPILING)
+ IF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
+ try_compile(_TMP_RESULT "${_bindir}_fail_compile" "${_SRCFILE_FAIL_COMPILE}")
+ IF (_TMP_RESULT)
+ SET(${RESULT_VAR} FALSE)
+ ELSE (_TMP_RESULT)
+ SET(${RESULT_VAR} TRUE)
+ ENDIF (_TMP_RESULT)
+ ENDIF (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
+
+ IF (${RESULT_VAR})
+ ecbuild_info("Checking Fortran support for ${_LOG_NAME} -- works")
+ ELSE (${RESULT_VAR})
+ ecbuild_info("Checking Fortran support for ${_LOG_NAME} -- not supported")
+ ENDIF (${RESULT_VAR})
+ SET(${RESULT_VAR} ${${RESULT_VAR}} CACHE INTERNAL "Fortran support for ${_LOG_NAME}")
+ ENDIF (NOT DEFINED ${RESULT_VAR})
+ENDMACRO(fortran_check_single_feature)
+
+# Find list of all features
+function(fortran_find_all_features outvar)
+ FILE(GLOB ALL_Fortran_FEATURE_FILES "${Fortran_FEATURE_CHECK_DIR}/*.F90")
+ set(OUTPUT_VARIABLES)
+ foreach(filename ${ALL_Fortran_FEATURE_FILES})
+ get_filename_component(filename ${filename} NAME_WE)
+ string(REGEX REPLACE "_fail_compile" "" filename "${filename}")
+ string(REGEX REPLACE "_fail" "" filename "${filename}")
+ string(REGEX REPLACE "-N[0-9]*" "" filename "${filename}")
+ set(OUTPUT_VARIABLES ${OUTPUT_VARIABLES} ${filename})
+ endforeach()
+ list(REMOVE_DUPLICATES OUTPUT_VARIABLES)
+ set(${outvar} ${OUTPUT_VARIABLES} PARENT_SCOPE)
+endfunction()
+
+# Parses input and separates into arguments before REQUIRED and after REQUIRED.
+# Arguments before REQUIRED are OPTIONALS.
+# Arguments after REQUIRED are REQUIRED.
+# If no arguments, then sets output OPTIONALS to ALLFEATURES.
+function(parse_input_features ALLFEATURES OPTIONALS REQUIRED ERRORS)
+
+ if("${ARGN}" STREQUAL "")
+ set(${OPTIONALS} ${ALLFEATURES} PARENT_SCOPE)
+ set(${REQUIRED} "" PARENT_SCOPE)
+ else()
+ set(REQUIRED_FEATURES)
+ set(OPTIONAL_FEATURES)
+ set(UNKNOWN_FEATURES)
+ set(result_type OPTIONAL_FEATURES)
+ foreach(feature ${ARGN})
+ if(${feature} STREQUAL "REQUIRED")
+ set(result_type REQUIRED_FEATURES)
+ else()
+ list(FIND ALLFEATURES ${feature} feature_was_found)
+
+ if(feature_was_found EQUAL -1)
+ list(APPEND UNKNOWN_FEATURES ${feature})
+ else()
+ list(APPEND ${result_type} ${feature})
+ endif()
+
+ endif(${feature} STREQUAL "REQUIRED")
+ endforeach()
+
+ set(${OPTIONALS} ${OPTIONAL_FEATURES} PARENT_SCOPE)
+ set(${REQUIRED} ${REQUIRED_FEATURES} PARENT_SCOPE)
+ set(${ERRORS} ${UNKNOWN_FEATURES} PARENT_SCOPE)
+ endif("${ARGN}" STREQUAL "")
+endfunction(parse_input_features)
+
+# Figures out name and number of feature
+# then calls macro that does the work
+macro(_figure_out_fortran_feature current_feature)
+ # Find set of files that match current_feature, excepting _fail and _fail_compile.
+ file(GLOB ALL_FEATURE_FILES "${Fortran_FEATURE_CHECK_DIR}/${current_feature}*.F90")
+ foreach(filename ${ALL_FEATURE_FILES})
+ if(filename MATCHES "_fail")
+ list(REMOVE_ITEM ALL_FEATURE_FILES ${filename})
+ endif()
+ endforeach()
+
+ list(LENGTH ALL_FEATURE_FILES NFILES)
+ if(NOT ${NFILES} EQUAL 1)
+ ecbuild_critical("[Fortran] Expected to find only one feature. Found ${NFILES} -- ${ALL_FEATURE_FILES}.")
+ endif(NOT ${NFILES} EQUAL 1)
+
+ # Now we know which file corresponds to option.
+ get_filename_component(basename ${ALL_FEATURE_FILES} NAME_WE)
+ # If has feature number, extract it
+ set(number "")
+ if(basename MATCHES "-N[0-9]*$")
+ string(REGEX REPLACE "${current_feature}-N" "" number "${basename}")
+ endif()
+ # Then call macro
+ string(TOUPPER ${current_feature} UPPER_OPTIONAL)
+ set(VARNAME HAS_Fortran_${UPPER_OPTIONAL})
+ fortran_check_single_feature(${current_feature} "${number}" ${VARNAME})
+endmacro(_figure_out_fortran_feature)
+
+function(fortran_feature_check)
+
+ # find all features
+ fortran_find_all_features(ALL_Fortran_FEATURES)
+
+ # Parses input to this function.
+ parse_input_features("${ALL_Fortran_FEATURES}" OPTIONALS REQUIRED ERRORS ${ARGN})
+ if(NOT ${ERRORS} STREQUAL "")
+ ecbuild_info("[Fortran] The following features are unknown: ${ERRORS}.")
+ endif()
+
+ # Check optional features
+ foreach(current_feature ${OPTIONALS})
+ _figure_out_fortran_feature(${current_feature})
+ endforeach(current_feature ${ARGN})
+
+ # Check required features
+ foreach(current_feature ${REQUIRED})
+ _figure_out_fortran_feature(${current_feature})
+ set(VARNAME HAS_Fortran_${UPPER_OPTIONAL})
+ if(NOT ${VARNAME})
+ ecbuild_critical("[Fortran] Required feature ${current_feature} is not available.")
+ endif(NOT ${VARNAME})
+ endforeach(current_feature ${REQUIRED})
+
+endfunction(fortran_feature_check)
diff --git a/cmake/fortran_features/c_size_t.F90 b/cmake/fortran_features/c_size_t.F90
new file mode 100644
index 0000000..3c47136
--- /dev/null
+++ b/cmake/fortran_features/c_size_t.F90
@@ -0,0 +1,8 @@
+program test_c_sizeof
+use, intrinsic :: iso_c_binding, only : c_size_t, c_int, c_long
+
+write(0,*) "c_int = ",c_int
+write(0,*) "c_long = ",c_long
+write(0,*) "c_size_t = ",c_size_t
+
+end program
\ No newline at end of file
diff --git a/cmake/fortran_features/c_sizeof.F90 b/cmake/fortran_features/c_sizeof.F90
new file mode 100644
index 0000000..fc1be41
--- /dev/null
+++ b/cmake/fortran_features/c_sizeof.F90
@@ -0,0 +1,3 @@
+program test_c_sizeof
+use, intrinsic :: iso_c_binding, only : c_sizeof
+end program
\ No newline at end of file
diff --git a/cmake/fortran_features/derivedtype_interface.F90 b/cmake/fortran_features/derivedtype_interface.F90
new file mode 100644
index 0000000..d59a1c3
--- /dev/null
+++ b/cmake/fortran_features/derivedtype_interface.F90
@@ -0,0 +1,54 @@
+module constructor
+
+implicit none
+
+TYPE :: AnimalType
+ private
+ integer :: m_age
+contains
+ procedure :: age
+ procedure :: speak
+ENDTYPE
+
+! Declare constructor as interface with same name as type
+interface AnimalType
+ module procedure AnimalType__ctor
+end interface
+
+contains
+
+function AnimalType__ctor(age) result(self)
+ type(AnimalType) :: self
+ integer :: age
+ write(0,'(A)') "Constructor Animal"
+ self%m_age = age
+end function
+
+function age(self)
+ class(AnimalType), intent(inout) :: self
+ integer :: age
+ age = self%m_age
+end function
+
+subroutine speak(self)
+ class(AnimalType), intent(in) :: self
+ write(0,'(A)') "Animal::speak not overridden"
+end subroutine
+
+end module
+
+! ------------------------------------------------------------------------
+
+program test_constructor
+use constructor
+implicit none
+
+ type(AnimalType) :: animal
+
+ animal = AnimalType(8)
+
+ write(0,'(A,I0)') "age = ",animal%age()
+
+ call animal%speak()
+
+end program
diff --git a/cmake/fortran_features/derivedtype_io.F90 b/cmake/fortran_features/derivedtype_io.F90
new file mode 100644
index 0000000..47a98b0
--- /dev/null
+++ b/cmake/fortran_features/derivedtype_io.F90
@@ -0,0 +1,42 @@
+module write_module
+
+implicit none
+
+TYPE :: AnimalType
+ integer :: m_age
+ integer :: m_paws
+contains
+ procedure :: writetype
+ generic :: write(formatted) => writetype
+ENDTYPE
+
+contains
+
+subroutine writetype(animal, unit, iotype, v_list, iostat, iomsg)
+ ! Argument names here from the std, but you can name them differently.
+ class(AnimalType), intent(in) :: animal ! Object to write.
+ integer, intent(in) :: unit ! Internal unit to write to.
+ character(*), intent(in) :: iotype ! LISTDIRECTED or DTxxx
+ integer, intent(in) :: v_list(:) ! parameters from fmt spec.
+ integer, intent(out) :: iostat ! non zero on error, etc.
+ character(*), intent(inout) :: iomsg ! define if iostat non zero.
+
+ write (unit, "(A)", IOSTAT=iostat, IOMSG=iomsg) &
+ "I am a dog"
+end subroutine writetype
+
+end module
+
+! ------------------------------------------------------------------------
+
+program test_write
+use write_module
+implicit none
+
+ type(AnimalType) :: animal
+
+ animal = AnimalType(8,4)
+
+ write(0,'(A,DT)') 'Custom writing: ',animal
+
+end program
diff --git a/cmake/fortran_features/finalization.F90 b/cmake/fortran_features/finalization.F90
new file mode 100644
index 0000000..5bacd5f
--- /dev/null
+++ b/cmake/fortran_features/finalization.F90
@@ -0,0 +1,141 @@
+module final_module
+
+implicit none
+
+integer :: final_counted = 0
+integer :: destroy_counted = 0
+
+TYPE :: AnimalType
+ character(len=20), private :: m_kind = "unidentified"
+ logical :: constructed = .false.
+contains
+ procedure :: speak
+ final :: AnimalType__dtor
+ENDTYPE
+
+interface AnimalType
+ module procedure AnimalType__ctor
+end interface
+
+interface assignment(=)
+ module procedure AnimalType__assignment
+end interface
+
+contains
+
+subroutine speak(self)
+ class(AnimalType), intent(in) :: self
+ write(0,'(2A)') "I am a ",self%m_kind
+end subroutine
+
+subroutine AnimalType__dtor(self)
+ type(AnimalType), intent(inout) :: self
+
+ write(0,'(2A)') "Final animal ",self%m_kind
+ final_counted = final_counted + 1
+
+ ! Destruction guard needed for portability
+ if( self%constructed ) then
+ write(0,'(2A)') " Destroy animal ",self%m_kind
+ destroy_counted = destroy_counted + 1
+ endif
+end subroutine
+
+function AnimalType__ctor(animaltype_) result(self)
+ type(AnimalType) :: self
+ character(len=*) :: animaltype_
+ self%m_kind = animaltype_
+ write(0,'(3A,I0)') "Constructing animal ",self%m_kind, " -- address = ",loc(self)
+ self%constructed = .true.
+end function
+
+subroutine AnimalType__assignment(animal_out,animal_in)
+ type(AnimalType), intent(out) :: animal_out
+ class(AnimalType), intent(in) :: animal_in
+ write(0,'(3A,I0,A,I0)') ' Copying ',animal_in%m_kind, " -- from address ", loc(animal_in), " to address ", loc(animal_out)
+ animal_out%m_kind = animal_in%m_kind
+ animal_out%constructed = animal_in%constructed
+end subroutine
+
+end module
+
+! ------------------------------------------------------------------------
+
+subroutine scope_test
+use final_module
+implicit none
+
+ type(AnimalType) :: dog
+ type(AnimalType) :: cat
+
+ dog = AnimalType("dog") ! Cray : final called on temporary AnimalType("dog"); missing final call on dog before assignment
+ ! Intel : final called on dog before assignment; and on temporary AnimalType("dog")
+ ! PGI 14.4 : final NOT called at all, possibly compiler bug
+ ! GNU 4.9 : final called on dog before assignment; missing call on temporary AnimalType("dog")
+ call dog%speak()
+
+ ! final called on dog when out of scope
+end subroutine
+
+! -------------------------------------------------------
+
+subroutine assignment_test
+use final_module
+implicit none
+
+ type(AnimalType) :: dog
+ type(AnimalType) :: animal
+
+ dog = AnimalType("dog") ! final called on dog before assignment
+ call dog%speak()
+ write(0,'(A)') "-- animal = dog"
+ animal = dog ! final called on animal before assignment
+ call animal%speak()
+
+ ! final called on dog when out of scope
+ ! final called on animal when out of scope
+end subroutine
+
+! -------------------------------------------------------
+
+program test_final
+use final_module
+implicit none
+ logical :: test_failed = .false.
+
+ final_counted = 0
+ destroy_counted = 0
+
+ write(0,'(A)') " "
+ write(0,'(A)') ">>>>>> begin scope_test"
+ call scope_test
+ write(0,'(A)') "<<<<<< end scope_test"
+ write(0,'(A)') " "
+
+ write(0,'(A,I0)') "final_counted = ", final_counted
+ write(0,'(A,I0)') "destroy_counted = ", destroy_counted
+
+ if( destroy_counted < 1 ) then
+ test_failed = .true.
+ write(0,'(A)') "ASSERTION FAILED: destroy_counted < 1"
+ endif
+
+ final_counted = 0
+ destroy_counted = 0
+
+ write(0,'(A)') " "
+ write(0,'(A)') ">>>>>> begin assignment_test"
+ call assignment_test
+ write(0,'(A)') "<<<<<< end assignment_test"
+ write(0,'(A)') " "
+
+ write(0,'(A,I0)') "final_counted = ", final_counted
+ write(0,'(A,I0)') "destroy_counted = ", destroy_counted
+
+ if( destroy_counted < 2 ) then
+ test_failed = .true.
+ write(0,*) "ASSERTION FAILED: destroy_counted < 2"
+ endif
+ if( test_failed ) STOP 1
+
+end program
diff --git a/cmake/fortran_features/submodules.F90 b/cmake/fortran_features/submodules.F90
new file mode 100644
index 0000000..3a2261f
--- /dev/null
+++ b/cmake/fortran_features/submodules.F90
@@ -0,0 +1,35 @@
+module sb_module
+implicit none
+integer :: a = 1
+
+interface
+ module subroutine sb
+ end subroutine
+end interface
+
+contains
+end module sb_module
+
+! -------------------------------------------------------
+
+submodule (sb_module) sb_submod1
+implicit none
+integer :: b = 2
+
+contains
+
+module subroutine sb()
+ a = b
+end subroutine
+
+end submodule sb_submod1
+
+! -------------------------------------------------------
+
+program test_submodule
+use sb_module
+implicit none
+write(0,*) a
+call sb()
+write(0,*) a
+end program
\ No newline at end of file
diff --git a/magics.sublime-project b/magics.sublime-project
index 2e3ccfe..4c8dea6 100644
--- a/magics.sublime-project
+++ b/magics.sublime-project
@@ -7,7 +7,7 @@
],
"build_systems": [
{
- "working_dir": "${project_path}/../../build/magics",
+ "working_dir": "${project_path}/../../build/magics-bug/debug",
"cmd": [
"make"
],
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 0d94cc5..f5585f5 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -1 +1,27 @@
-add_subdirectory( Magics )
+if( HAVE_PYTHON )
+
+ configure_file( setup.py.in setup.py )
+ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/../src/common/magics_api.h magics_api.h COPYONLY )
+ configure_file( numpy.i numpy.i COPYONLY )
+ configure_file( Magics_interface.cc Magics_interface.cc COPYONLY )
+ configure_file( Magics.i.in Magics/Magics.i )
+
+ # Copy python modules to build area
+ # configure_file ensures the copy is triggered if the file changes
+ configure_file( Magics/__init__.py Magics/__init__.py COPYONLY )
+ configure_file( Magics/macro.py Magics/macro.py COPYONLY )
+ configure_file( Magics/metgram.py Magics/metgram.py COPYONLY )
+
+ set( _magics_swig "_Magics${CMAKE_SHARED_LIBRARY_SUFFIX}" )
+ # Build the extension module for use in build tree with RPATH pointing to the build tree
+ add_custom_command( OUTPUT ${_magics_swig}
+ COMMAND ${PYTHON_EXECUTABLE} setup.py build_ext --inplace --rpath ${CMAKE_BINARY_DIR}/lib
+ DEPENDS Magics_interface.cc Magics.i.in numpy.i setup.py.in MagPlus )
+ add_custom_target(build_swig_wrapper ALL DEPENDS ${_magics_swig})
+
+ # Build the extension module for use in install tree with RPATH pointing to install tree
+ install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py build_ext --rpath ${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+ # Call distutils for installation
+ install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py install --prefix $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+
+endif()
diff --git a/python/Magics/Magics.i.in b/python/Magics.i.in
similarity index 100%
rename from python/Magics/Magics.i.in
rename to python/Magics.i.in
diff --git a/python/Magics/CMakeLists.txt b/python/Magics/CMakeLists.txt
deleted file mode 100644
index 9769ea4..0000000
--- a/python/Magics/CMakeLists.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-if( HAVE_PYTHON )
-
- ### python destination
-
- set( PYTHON_SITE "${INSTALL_LIB_DIR}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages" )
- set( PYTHON_DEST "${PYTHON_SITE}/Magics" )
-
- file( RELATIVE_PATH relative_rpath "${CMAKE_INSTALL_PREFIX}/${PYTHON_DEST}" "${${PNAME}_FULL_INSTALL_LIB_DIR}" )
-
- #debug_var( relative_rpath )
-
- # See comment below, where the following lines are overriden
- ecbuild_append_to_rpath( ${relative_rpath} )
- ecbuild_append_to_rpath( "../../lib" ) # for the ctest to find magics libs
-
- ### place in build tree so we can run python tests
-
- configure_file( macro.py macro.py COPYONLY )
- configure_file( metgram.py metgram.py COPYONLY )
-
- ### build python bindings
-
- configure_file( Magics.i.in Magics.i )
-
- include_directories( ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} )
-
- set_source_files_properties( ${CMAKE_CURRENT_BINARY_DIR}/Magics.i PROPERTIES GENERATED TRUE CXX ON )
-
- swig_add_module( Magics python Magics_interface.cc ${CMAKE_CURRENT_BINARY_DIR}/Magics.i )
-
- set_source_files_properties(partio.i PROPERTIES SWIG_FLAGS "-includeall")
-
- swig_link_libraries( Magics MagPlus ${PYTHON_LIBRARIES} )
-
- execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_BINARY_DIR}/Magics.py ${CMAKE_CURRENT_BINARY_DIR}/__init__.py )
-
- # On the MAC, only one RPATH cat be set (Mac does not understand path:path:path)
- # Someone, please fix
- # set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
- set_target_properties(_Magics PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
-
- ### make it available in the build dir
-
- file( MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${PYTHON_SITE} )
-
- execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR}/${PYTHON_DEST} )
-
- ### install to final destination
-
- install( TARGETS _Magics DESTINATION ${PYTHON_DEST} )
- install( FILES
- macro.py
- metgram.py
- DESTINATION ${PYTHON_DEST} )
-
- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/Magics.py
- RENAME __init__.py
- DESTINATION ${PYTHON_DEST} )
-
-endif()
-
diff --git a/python/Magics/__init__.py b/python/Magics/__init__.py
new file mode 100644
index 0000000..32bfc28
--- /dev/null
+++ b/python/Magics/__init__.py
@@ -0,0 +1 @@
+from Magics import *
diff --git a/python/Magics/setup.py.in b/python/Magics/setup.py.in
deleted file mode 100644
index f8cc128..0000000
--- a/python/Magics/setup.py.in
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env python
-
-from distutils.core import setup, Extension
-import os,sys
-
-lib_list=["MagPlus"]
-libpath_list=["../../src/.libs"]
-runpath_list=["@prefix@/lib","@ODB_PATH@/lib"]
-
-if "@odb@" != "no":
- lib_list.append('Odb')
- lib_list.append('Ec')
- if "@ODB_PATH@":
- libpath_list.append("@ODB_PATH@/lib")
-
-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
- if "@FORTRAN_LIB_PATH@":
- libpath_list.append("@FORTRAN_LIB_PATH@")
- runpath_list.append("@FORTRAN_LIB_PATH@")
-
-attdict = dict(
- sources = ['Magics.i'],
- swig_opts = ['-c++','-module', 'Magics'],
- include_dirs = ['.', '../../src/common'],
- library_dirs = libpath_list + ["%s/lib" % sys.prefix],
- libraries = lib_list + ["m"],
- runtime_library_dirs = runpath_list,
- extra_objects = [],
-)
-
-add_attribute = lambda **args: [list.append(attdict[key],value) for key,value in args.items()]
-
-build_dir = '../'
-
-import glob
-ofiles=glob.glob("%s*.o" % build_dir)
-print "files are %s" % ofiles
-add_attribute(
- include_dirs = os.path.join(build_dir,'src')
-)
-
-lib_dict = {
- 'grib_api': '@GRIBAPI_ROOT@',
-}
-
-for with_lib in lib_dict:
- if with_lib:
- lib_dir = lib_dict[with_lib]
- if lib_dir and lib_dir != 'system':
- add_attribute(
- include_dirs = os.path.join(lib_dir,'include'),
- library_dirs = os.path.join(lib_dir,'lib')
- )
- add_attribute(libraries = with_lib)
-
- import numpy
- # Obtain the numpy include directory. This logic works across numpy versions.
- try:
- numpy_include = numpy.get_include()
- except AttributeError:
- numpy_include = numpy.get_numpy_include()
-
- add_attribute(
- include_dirs = numpy_include,
- )
-
-api_module = Extension('_Magics',**attdict)
-
-setup (name = '@PACKAGE_NAME@',
- version = '@MAGICS_PACKAGE_VERSION@',
- author = 'ECMWF',
- description = """Magics++ Python interface""",
- ext_modules = [api_module],
- py_modules = ['Magics.macro','Magics.metgram'],
- package_dir={'Magics': ''},
- packages=['Magics'],
- )
diff --git a/python/Magics/Magics_interface.cc b/python/Magics_interface.cc
similarity index 100%
rename from python/Magics/Magics_interface.cc
rename to python/Magics_interface.cc
diff --git a/python/Magics/numpy.i b/python/numpy.i
similarity index 99%
rename from python/Magics/numpy.i
rename to python/numpy.i
index e3ff236..644e968 100644
--- a/python/Magics/numpy.i
+++ b/python/numpy.i
@@ -111,7 +111,7 @@
if (PyModule_Check( py_obj)) return "module" ;
if (PyInstance_Check(py_obj)) return "instance" ;
- return "unkown type";
+ return "unknown type";
}
/* Given a NumPy typecode, return a string describing the type.
diff --git a/python/setup.py.in b/python/setup.py.in
new file mode 100644
index 0000000..b83225c
--- /dev/null
+++ b/python/setup.py.in
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+from distutils.core import setup, Extension
+import os
+import sys
+
+import numpy
+# Obtain the numpy include directory. This logic works across numpy versions.
+try:
+ numpy_include = numpy.get_include()
+except AttributeError:
+ numpy_include = numpy.get_numpy_include()
+
+
+attdict = dict(
+ sources = ['Magics/Magics.i'],
+ swig_opts = ['-c++'],
+ include_dirs = ['.', '@CMAKE_CURRENT_SOURCE_DIR@/../src/common',numpy_include],
+ library_dirs = ["@CMAKE_BINARY_DIR@/lib"],
+ libraries = ["MagPlus","m"],
+ extra_objects = [],
+)
+
+setup (name = 'Magics',
+ version = '@MAGICS_VERSION_STR@',
+ author = 'ECMWF',
+ author_email = 'Software.Support at ecmwf.int',
+ description = """Magics Python interface""",
+ license = 'Apache License, Version 2.0',
+ url = 'https://software.ecmwf.int/Magics',
+ ext_modules = [Extension('Magics._Magics',**attdict)],
+ packages = ['Magics'],
+ )
diff --git a/share/ecbuild/toolchains/ecmwf-XC30-Cray.cmake b/share/ecbuild/toolchains/ecmwf-XC30-Cray.cmake
index 52924b9..31a241b 100644
--- a/share/ecbuild/toolchains/ecmwf-XC30-Cray.cmake
+++ b/share/ecbuild/toolchains/ecmwf-XC30-Cray.cmake
@@ -40,13 +40,6 @@ set( OMPSTUBS_CXX_FLAGS "-hnoomp" )
set( OMPSTUBS_Fortran_FLAGS "-hnoomp" )
####################################################################
-# Fortran FLAGS
-####################################################################
-
-# -emf activates .mods and uses lower case -rmoid produces a listing file
-set( ECBUILD_Fortran_FLAGS "-emf -rmoid" )
-
-####################################################################
# LINK FLAGS
####################################################################
diff --git a/share/ecbuild/toolchains/ichec-fionn-Intel.cmake b/share/ecbuild/toolchains/ichec-fionn-Intel.cmake
new file mode 100644
index 0000000..184dfb5
--- /dev/null
+++ b/share/ecbuild/toolchains/ichec-fionn-Intel.cmake
@@ -0,0 +1,67 @@
+####################################################################
+# ARCHITECTURE
+####################################################################
+
+
+####################################################################
+# COMPILER
+####################################################################
+
+include(CMakeForceCompiler)
+
+CMAKE_FORCE_C_COMPILER ( icc Intel )
+CMAKE_FORCE_CXX_COMPILER ( icpc Intel )
+CMAKE_FORCE_Fortran_COMPILER ( ifort Intel )
+
+####################################################################
+# OpenMP FLAGS
+####################################################################
+
+set( OMP_C_FLAGS "-openmp -openmp-threadprivate=compat" )
+set( OMP_CXX_FLAGS "-openmp -openmp-threadprivate=compat" )
+set( OMP_Fortran_FLAGS "-openmp -openmp-threadprivate=compat" )
+
+####################################################################
+# COMMON FLAGS
+####################################################################
+
+# for diagnostics:
+# -diag-enable=vec -diag-file -Winline
+
+set( ECBUILD_C_FLAGS "-fp-speculation=strict -fp-model precise -traceback")
+set( ECBUILD_CXX_FLAGS "-fp-speculation=strict -fp-model precise -traceback" )
+set( ECBUILD_Fortran_FLAGS "-fp-speculation=strict -fp-model source -convert big_endian -assume byterecl -traceback -fpe0" )
+
+####################################################################
+# BIT REPRODUCIBLE FLAGS
+####################################################################
+
+set( ECBUILD_C_FLAGS_BIT "-O2 -xAVX -finline-function -finline-limit=500" )
+set( ECBUILD_CXX_FLAGS_BIT "-O2 -xAVX -finline-function -finline-limit=500" )
+set( ECBUILD_Fortran_FLAGS_BIT "-O2 -xAVX -finline-function -finline-limit=500 -align array64byte" )
+
+####################################################################
+# DEBUG FLAGS
+####################################################################
+
+set( ECBUILD_C_FLAGS_DEBUG "-O0 -g -traceback -fp-trap=common" )
+set( ECBUILD_CXX_FLAGS_DEBUG "-O0 -g -traceback -fp-trap=common" )
+# -check all implies -check bounds
+set( ECBUILD_Fortran_FLAGS_DEBUG "-O0 -g -traceback -warn all -heap-arrays -fpe-all=0 -fpe:0 -check all" )
+
+####################################################################
+# LINK FLAGS
+####################################################################
+
+set( ECBUILD_C_LINK_FLAGS "-Wl,-Map,load.map -Wl,--as-needed" )
+set( ECBUILD_CXX_LINK_FLAGS "-Wl,-Map,load.map -Wl,--as-needed" )
+set( ECBUILD_Fortran_LINK_FLAGS "-Wl,-Map,load.map -Wl,--as-needed" )
+
+###################################################################
+#
+# Serial versions of these packages (need to specify intel_mpi versions? )
+###################################################################
+
+set( FFTW_PATH "/ichec/packages/fftw/intel/3.3.4")
+set( NETCDF_PATH "/ichec/packages/netcdf/intel/4.4.0")
+set( HDF5_PATH "/ichec/packages/hdf5/intel/1.8.16")
diff --git a/share/magics/10m/ne_10m_admin_0_boundary_lines_land.dbf b/share/magics/10m/ne_10m_admin_0_boundary_lines_land.dbf
index 30c5e3c..924bc8a 100644
Binary files a/share/magics/10m/ne_10m_admin_0_boundary_lines_land.dbf and b/share/magics/10m/ne_10m_admin_0_boundary_lines_land.dbf differ
diff --git a/share/magics/110m/ne_110m_admin_0_boundary_lines_land.dbf b/share/magics/110m/ne_110m_admin_0_boundary_lines_land.dbf
index abaed20..729672d 100644
Binary files a/share/magics/110m/ne_110m_admin_0_boundary_lines_land.dbf and b/share/magics/110m/ne_110m_admin_0_boundary_lines_land.dbf differ
diff --git a/share/magics/50m/ne_50m_admin_0_boundary_lines_land.dbf b/share/magics/50m/ne_50m_admin_0_boundary_lines_land.dbf
index f384f1c..5650c80 100644
Binary files a/share/magics/50m/ne_50m_admin_0_boundary_lines_land.dbf and b/share/magics/50m/ne_50m_admin_0_boundary_lines_land.dbf differ
diff --git a/share/magics/epsg.json b/share/magics/epsg.json
index 3c3848e..470c3b0 100644
--- a/share/magics/epsg.json
+++ b/share/magics/epsg.json
@@ -72,11 +72,11 @@
},
{
"EPSG:3857": {
- "definition": "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs",
- "max_latitude": 85,
+ "definition": "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +nadgrids=@null +units=m +no_defs",
+ "max_latitude": 84,
"max_longitude": 180,
"method": "simple",
- "min_latitude": -85,
+ "min_latitude": -80,
"min_longitude": -180
}
},
diff --git a/share/magics/table_128.xml b/share/magics/table_128.xml
index 938ad6d..acfdbe7 100644
--- a/share/magics/table_128.xml
+++ b/share/magics/table_128.xml
@@ -1305,5 +1305,12 @@ does it submit to any jurisdiction.
original_unit='m s**-1' derived_unit=''
vector1='0' vector2='0'
contour_interval='0.0' specification=''/>
+ <param code='260510' mars=''
+ short_title=''
+ long_title=''
+ scaling='1.0' offset='-273.16'
+ original_unit='K' derived_unit='deg c'
+ />
</table>
+
</center>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 77d5d07..4717c2e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -38,7 +38,7 @@ foreach( file ${magics_xmls} )
# generate the code
add_custom_command(
OUTPUT ${ouputfiles}
- COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/xml2cc_new.pl ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${CMAKE_CURRENT_BINARY_DIR}/params nosubdir
+ COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/xml2cc.pl ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${CMAKE_CURRENT_BINARY_DIR}/params nosubdir
DEPENDS ${file}
)
diff --git a/src/basic/LegendVisitor.cc b/src/basic/LegendVisitor.cc
index 31ac3a3..608c7b3 100644
--- a/src/basic/LegendVisitor.cc
+++ b/src/basic/LegendVisitor.cc
@@ -1,12 +1,20 @@
-/*
- * (C) Copyright 1996-2016 ECMWF.
- *
- * This software is licensed under the terms of the Apache Licence Version 2.0
- * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
- * In applying this licence, ECMWF does not waive the privileges and immunities
- * granted to it by virtue of its status as an intergovernmental organisation nor
- * does it submit to any jurisdiction.
- */
+/******************************** LICENSE ********************************
+
+ Copyright 2007 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.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ ******************************** LICENSE ********************************/
/*!
\brief Implementation of the Template class LegendNode.
@@ -70,8 +78,10 @@ void LegendVisitor::print(ostream& out) const
}
+
void LegendVisitor::visit(BasicGraphicsObjectContainer&)
{
+
}
@@ -84,7 +94,6 @@ void LegendVisitor::visit(BasicSceneObject& parent)
void LegendVisitor:: visit(AnimationStep& )
{
}
-
PaperPoint LegendEntry::centreSymbolBox(const PaperPoint& middle)
{
// The box is going from x-1 to x+1
@@ -105,7 +114,6 @@ PaperPoint LegendEntry::leftTextBox(const PaperPoint& middle)
MagLog::dev() << "LegendEntry::leftTextBox" << point << endl;
return point;
}
-
PaperPoint ArrowEntry::leftTextBox(const PaperPoint& middle)
{
PaperPoint point(middle);
@@ -113,7 +121,6 @@ PaperPoint ArrowEntry::leftTextBox(const PaperPoint& middle)
point.y_ += 0.2;
return point;
}
-
PaperPoint FlagEntry::leftTextBox(const PaperPoint& middle)
{
// The box is going from x-1 to x+1
@@ -124,7 +131,6 @@ PaperPoint FlagEntry::leftTextBox(const PaperPoint& middle)
point.y_ += 0.5;
return point;
}
-
double LegendEntry::computeWidth(double width)
{
return ((100-width_)/50)*width;
@@ -139,7 +145,15 @@ void LineEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& ou
line_->push_back(PaperPoint(x+0.5, y));
out.push_back(line_);
}
+void RainbowEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& out)
+{
+ double x = point.x();
+ double y = point.y();
+ line_->push_back(PaperPoint(x-0.5, y+0.5));
+ line_->push_back(PaperPoint(x+0.5, y+0.5));
+ out.push_back(line_);
+}
void LineEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer& out)
{
double x = point.x();
@@ -149,12 +163,10 @@ void LineEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer&
line_->push_back(PaperPoint(x+1, y));
out.push_back(line_);
}
-
void DoubleLineEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& out)
{
set(point, out);
}
-
void DoubleLineEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer& out)
{
set(point, out);
@@ -162,6 +174,10 @@ void DoubleLineEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectCont
void LegendVisitor::build()
{
+
+
+
+
legend_ = new LegendLayout();
legend_->x(view_x_);
@@ -197,14 +213,18 @@ void LegendVisitor::build()
legend->push_back(titlePosition_);
legend_->push_back(legend);
}
+
+ if ( !empty() ) {
+ if ( use_min_ ) {
+ front()->userText(use_min_text_);
+ }
+ if ( use_max_ ) {
+ back()->userText(use_max_text_);
+ }
- if ( use_min_ ) {
- front()->userText(use_min_text_);
+ back()->units(units_text_);
}
- if ( use_max_ ) {
- back()->userText(use_max_text_);
- }
-
+
for(vector<LegendEntry*>::const_iterator entry = begin(); entry != end(); ++entry)
{
(*entry)->width(text_width_);
@@ -227,7 +247,7 @@ void LegendVisitor::build()
user = utext;
else
user = ( label != lines_.end() ) ? *label: "";
- string automatic = (*entry)->label();
+ string automatic = (*entry)->label() + (*entry)->units();
if ( composition == compositions_.end() )
{
@@ -288,10 +308,16 @@ void LegendVisitor::horizontal()
}
// here we have a title, we need to adjust the coordinates used in the legend dependind on its position
-}
+
+
+
+
+}
void LegendVisitor::vertical()
{
+ double xmin, xmax, ymin, ymax;
+ double xtitle, ytitle;
int row = 1;
int column = 1;
int rows = entriesNumber_/columns_;
@@ -317,8 +343,8 @@ void LegendVisitor::vertical()
title_position_ = M_LEFT;
(this->*titleBuilders_[title_position_])();
}
-}
+}
void LegendVisitor::topTitle()
{
double minx = legend_->minX();
@@ -335,7 +361,6 @@ void LegendVisitor::topTitle()
legend_->maxY(newmaxy);
}
-
void LegendVisitor::bottomTitle()
{
double minx = legend_->minX();
@@ -352,7 +377,6 @@ void LegendVisitor::bottomTitle()
legend_->minY(newminy);
}
-
void LegendVisitor::rightTitle()
{
double minx = legend_->minX();
@@ -371,7 +395,6 @@ void LegendVisitor::rightTitle()
legend_->maxX(newmaxx);
}
-
void LegendVisitor::leftTitle()
{
double minx = legend_->minX();
@@ -382,7 +405,7 @@ void LegendVisitor::leftTitle()
bool column = ( legend_->absoluteWidth() < legend_->absoluteHeight() );
titleJustification_ = ( column ) ? MCENTRE : MRIGHT;
- //float factor = ( column ) ? 0.25 : 0.15;
+ float factor = ( column ) ? 0.25 : 0.15;
titleAngle_ = ( column ) ? magics::PI * 1.5 : 0;
double width = (100 /(100-title_ratio_))*(maxx - minx);
@@ -390,6 +413,7 @@ void LegendVisitor::leftTitle()
titlePosition_ = PaperPoint(minx + (newminx-minx)*0.1, (maxy-miny)/2);
legend_->minX(newminx);
+
}
@@ -438,10 +462,12 @@ void LegendVisitor::grid()
else {
(this->*builder->second)();
}
+
}
void SymbolEntry::set(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
+
double width = computeWidth(0.8)/2;
double height = 0.4;
PaperPoint p = centreSymbolBox(point);
@@ -570,6 +596,8 @@ void FlagEntry::set(const PaperPoint& point, BasicGraphicsObjectContainer& legen
legend.push_back(flag_);
flag_->setLength(legend.absoluteHeight());
flag_->back().set(40, 85);
+
+
}
void FlagEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
@@ -581,7 +609,6 @@ void FlagEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& l
text->setJustification(MLEFT);
legend.push_back(text);
}
-
void FlagEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
set(point, legend);
@@ -596,7 +623,6 @@ void FlagEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer
text->setJustification(MLEFT);
legend.push_back(text);
}
-
Colour BoxEntry::colour()
{
return box_->getFillColour();
@@ -629,6 +655,7 @@ void LegendEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer&
frame->push_back(PaperPoint(x+2, y-height));
frame->push_back(PaperPoint(x-width, y-height));
+
legend.push_back(frame);
}
@@ -645,6 +672,7 @@ void LegendEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContaine
}
Polyline* frame = new Polyline();
+
double x = point.x();
double y = point.y();
double width = 0.4;
@@ -662,7 +690,8 @@ void LegendEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContaine
frame->push_back(PaperPoint(x, y+height));
frame->push_back(PaperPoint(x, y-height));
frame->push_back(PaperPoint(x-width, y-height));
-
+
+
legend.push_back(frame);
ostringstream top, bottom;
@@ -753,6 +782,7 @@ void BoxEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& leg
to->addText(userText_, font_);
}
+
box_->push_back(PaperPoint(x-width, y-height));
box_->push_back(PaperPoint(x-width, y+height+height));
box_->push_back(PaperPoint(x+width, y+height+height));
@@ -767,6 +797,7 @@ void BoxEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& leg
}
box_->setColour(colour);
+
legend.push_back(box_);
}
@@ -937,11 +968,12 @@ void BoxEntry::rowHisto(const PaperPoint& point, BasicGraphicsObjectContainer& l
double pos = ((2*width)/(to_-from_)) * (meanValue_ - from_) + (x - width);
symbol->push_back(PaperPoint(pos, y + 1.));
legend.push_last(symbol);
+
}
}
-
void BoxEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
+
MagLog::debug() << "BoxEntry--->set at " << point << endl;
double width = computeWidth(0.8)/2;
double height = 0.5;
@@ -996,7 +1028,6 @@ void BoxEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer&
box_->setColour(colour);
legend.push_back(box_);
}
-
void BoxEntry::columnHisto(const PaperPoint& point, BasicGraphicsObjectContainer& legend, const Colour& colour)
{
@@ -1068,6 +1099,7 @@ Colour DoubleLineEntry::colour()
void LineEntry::set(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
+
double width = computeWidth(0.8)/2;
PaperPoint p = centreSymbolBox(point);
double x = p.x();
@@ -1103,6 +1135,7 @@ void check(const string& line, vector<string>& lines)
void LegendVisitor::getReady()
{
+
if ( lines_.empty() == false )
return;
@@ -1150,6 +1183,8 @@ void XmlLegendVisitor::getReady()
double text_width = width.percent();
double text_height = height.percent();
+
+
if ( ( text_height + text_y ) > 100 )
text_height = 100 - text_y ;
@@ -1197,6 +1232,7 @@ void FortranPositionalLegendVisitor::getReady()
Dimension text(font_dimension_, box_height_, 10);
font_size_ = text.absolute();
layout_->Layout::frame(blanking_, border_, *border_colour_, border_line_style_, border_thickness_);
+
}
@@ -1223,6 +1259,8 @@ void FortranAutomaticLegendVisitor::getReady()
void LegendEntry::set(const LegendVisitor& attributes)
{
format_ = attributes.format();
+
+
}
void SimpleSymbolEntry::set(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
@@ -1234,7 +1272,6 @@ void SimpleSymbolEntry::set(const PaperPoint& point, BasicGraphicsObjectContaine
}
-
const string& LegendEntry::label() const
{
if ( !label_.empty() || !fromto_)
@@ -1252,9 +1289,9 @@ const string& LegendEntry::label() const
label_ = nice.str();
return label_;
}
-
void SimpleSymbolEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
+
Polyline* box = new Polyline();
FillShadingProperties* shading = new FillShadingProperties();
box->setFillColour(colour());
@@ -1309,9 +1346,9 @@ void SimpleSymbolEntry::rowBox(const PaperPoint& point, BasicGraphicsObjectConta
}
box->setColour(colour);
+
legend.push_back(box);
}
-
void SimpleSymbolEntry::columnBox(const PaperPoint& point, BasicGraphicsObjectContainer& legend)
{
Polyline* box = new Polyline();
@@ -1380,3 +1417,4 @@ BoxEntry::~BoxEntry() {} //{ delete box_; }
ArrowEntry::~ArrowEntry() {} //{ delete arrow_; }
DoubleLineEntry::~DoubleLineEntry() {} //{ { delete line1_; delete line2_; }
LineEntry::~LineEntry() {} //{ delete line_;}
+RainbowEntry::~RainbowEntry() {} //{ delete line_;}
\ No newline at end of file
diff --git a/src/basic/LegendVisitor.h b/src/basic/LegendVisitor.h
index 28ff838..fd62ca8 100644
--- a/src/basic/LegendVisitor.h
+++ b/src/basic/LegendVisitor.h
@@ -62,7 +62,7 @@ public:
virtual void rowHisto(const PaperPoint& point, BasicGraphicsObjectContainer& out, const Colour&) {rowBox(point, out);}
virtual void columnHisto(const PaperPoint& point, BasicGraphicsObjectContainer& out, const Colour&) {columnBox(point, out);}
- virtual bool needContinuousText() { return false; }
+ virtual bool needContinuousText(Text&) { return false; }
virtual bool needText() { return true; }
virtual const string& label() const;
virtual void interpret(string&) const {}
@@ -72,6 +72,8 @@ public:
void userText(const string& text) { userText_ = text; }
const string& userText() { return userText_; }
+ const string& units() { return units_; }
+ void units(const string& units) { units_ = units; }
void font(const MagFont& font) { font_ = font; }
void angle(double angle) { angle_ = angle; }
@@ -108,6 +110,7 @@ protected:
HistogramLegendMethod* histogram_;
string userText_;
+ string units_;
double from_;
double to_;
string format_;
@@ -202,12 +205,22 @@ public:
void set(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void rowBox(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void columnBox(const PaperPoint&, BasicGraphicsObjectContainer&);
- bool needContinuousText() { return true; }
+ bool needContinuousText(Text& text) { text.setJustification(MLEFT); return true; }
~LineEntry();
protected:
Polyline* line_;
Colour colour();
};
+class RainbowEntry : public LineEntry
+{
+public:
+ RainbowEntry(double label, Polyline* line = 0 ) :
+ LineEntry(label, line) { }
+ bool needContinuousText(Text&) { return true; }
+ void rowBox(const PaperPoint&, BasicGraphicsObjectContainer&);
+
+ ~RainbowEntry();
+};
class DoubleLineEntry : public LegendEntry
@@ -224,7 +237,7 @@ public:
void set(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void rowBox(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void columnBox(const PaperPoint&, BasicGraphicsObjectContainer&);
- bool needContinuousText() { return true; }
+ bool needContinuousText(Text& text) { text.setJustification(MLEFT); return true; }
~DoubleLineEntry();
protected:
Polyline* line1_;
@@ -248,7 +261,7 @@ public:
void set(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void rowBox(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void columnBox(const PaperPoint&, BasicGraphicsObjectContainer&);
- bool needContinuousText() { return false; }
+ bool needContinuousText(Text&) { return false; }
PaperPoint leftTextBox(const PaperPoint&);
protected:
Arrow* arrow_;
@@ -270,7 +283,7 @@ public:
void set(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void rowBox(const PaperPoint&, BasicGraphicsObjectContainer&);
virtual void columnBox(const PaperPoint&, BasicGraphicsObjectContainer&);
- bool needContinuousText() { return false; }
+ bool needContinuousText(Text&) { return false; }
PaperPoint leftTextBox(const PaperPoint&);
protected:
Flag* flag_;
diff --git a/src/common/Arrow.h b/src/common/Arrow.h
index c1e585b..b4e447b 100644
--- a/src/common/Arrow.h
+++ b/src/common/Arrow.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Arrow.h
\brief Definition of the Template class Arrow.
diff --git a/src/common/ArrowProperties.cc b/src/common/ArrowProperties.cc
index 2fd6904..3245395 100644
--- a/src/common/ArrowProperties.cc
+++ b/src/common/ArrowProperties.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ArrowProperties.cc
\brief Implementation of the Template class Arrow.
diff --git a/src/common/ArrowProperties.h b/src/common/ArrowProperties.h
index bd64ccc..349264f 100644
--- a/src/common/ArrowProperties.h
+++ b/src/common/ArrowProperties.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ArrowProperties.h
\brief Definition of the Template class Arrow.
diff --git a/src/common/AutoLock.h b/src/common/AutoLock.h
index b41d64a..95c9941 100755
--- a/src/common/AutoLock.h
+++ b/src/common/AutoLock.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File AutoLock.h
// Baudouin Raoult - ECMWF May 96
diff --git a/src/common/AutoLocker.cc b/src/common/AutoLocker.cc
index 83f54f4..b237f17 100644
--- a/src/common/AutoLocker.cc
+++ b/src/common/AutoLocker.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/* #define CHECK_DEAD_LOCKS */
diff --git a/src/common/AutomaticPlotManager.cc b/src/common/AutomaticPlotManager.cc
index d05dc5e..b1cf2ae 100644
--- a/src/common/AutomaticPlotManager.cc
+++ b/src/common/AutomaticPlotManager.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AutomaticPlotManager.cc
\brief Implementation of the Template class AutomaticPlotManager.
diff --git a/src/common/AutomaticPlotManager.h b/src/common/AutomaticPlotManager.h
index 5af828e..466ffe0 100644
--- a/src/common/AutomaticPlotManager.h
+++ b/src/common/AutomaticPlotManager.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AutomaticPlotManager.h
\brief Definition of the Template class AutomaticPlotManager.
diff --git a/src/common/BackgroundColour.h b/src/common/BackgroundColour.h
index edc5de9..79deaf3 100644
--- a/src/common/BackgroundColour.h
+++ b/src/common/BackgroundColour.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BackgroundColour.h
\brief Definition of Colour class.
diff --git a/src/common/BaseParameter.cc b/src/common/BaseParameter.cc
index 1c3978d..d4d7d70 100644
--- a/src/common/BaseParameter.cc
+++ b/src/common/BaseParameter.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BaseParameter.cc
\brief Definition of Parameter base class.
diff --git a/src/common/BaseParameter.h b/src/common/BaseParameter.h
index 1a9885c..c92cb2b 100644
--- a/src/common/BaseParameter.h
+++ b/src/common/BaseParameter.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BaseParameter.h
\brief Definition of Parameter base class.
diff --git a/src/common/BasePointsHandler.cc b/src/common/BasePointsHandler.cc
index 0bd575f..2da908a 100644
--- a/src/common/BasePointsHandler.cc
+++ b/src/common/BasePointsHandler.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BasePointsHandler.h
\brief Definition of the Template base class AbstractPoints.
diff --git a/src/common/BasePointsHandler.h b/src/common/BasePointsHandler.h
index 243f599..54841c5 100644
--- a/src/common/BasePointsHandler.h
+++ b/src/common/BasePointsHandler.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BasePointsHandler.h
\brief Definition of the Template base class AbstractPoints.
diff --git a/src/common/CartesianTransformation.cc b/src/common/CartesianTransformation.cc
index 0c0391a..8d228a6 100644
--- a/src/common/CartesianTransformation.cc
+++ b/src/common/CartesianTransformation.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CartesianTransformation.cc
\brief Implementation of the Template class CartesianTransformation.
diff --git a/src/common/CartesianTransformation.h b/src/common/CartesianTransformation.h
index d707681..441c891 100644
--- a/src/common/CartesianTransformation.h
+++ b/src/common/CartesianTransformation.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CartesianTransformation.h
\brief Definition of the Template class CartesianTransformation.
diff --git a/src/common/Clipper.h b/src/common/Clipper.h
index 8b4be54..d4068c4 100644
--- a/src/common/Clipper.h
+++ b/src/common/Clipper.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Clipper.h
\brief Definition of the clipping.
diff --git a/src/common/Colour.cc b/src/common/Colour.cc
index 70f1568..647fa0a 100644
--- a/src/common/Colour.cc
+++ b/src/common/Colour.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Colour.cc
\brief Implementation of Colour class.
diff --git a/src/common/Colour.h b/src/common/Colour.h
index 90a7b16..7e609cf 100644
--- a/src/common/Colour.h
+++ b/src/common/Colour.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Colour.h
\brief Definition of Colour class.
diff --git a/src/common/ColourTable.cc b/src/common/ColourTable.cc
index afd5046..ac3356d 100644
--- a/src/common/ColourTable.cc
+++ b/src/common/ColourTable.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTable.cc
\brief Implementation of the Template class ColourTable.
diff --git a/src/common/ColourTable.h b/src/common/ColourTable.h
index 8001681..7766a49 100644
--- a/src/common/ColourTable.h
+++ b/src/common/ColourTable.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTable.h
\brief Definition of the Template class ColourTable.
diff --git a/src/common/ColourTableDefinition.h b/src/common/ColourTableDefinition.h
index 65e3d39..248d64b 100644
--- a/src/common/ColourTableDefinition.h
+++ b/src/common/ColourTableDefinition.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTableDefinition.h
\brief Definition of the Template class ColourTableDefinition.
diff --git a/src/common/ColourTableDefinitionCompute.cc b/src/common/ColourTableDefinitionCompute.cc
index 1eb2291..1eb8f72 100644
--- a/src/common/ColourTableDefinitionCompute.cc
+++ b/src/common/ColourTableDefinitionCompute.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTableDefinitionCompute.cc
\brief Implementation of the Template class ColourTableDefinitionCompute.
diff --git a/src/common/ColourTableDefinitionCompute.h b/src/common/ColourTableDefinitionCompute.h
index f452a77..0869ee4 100644
--- a/src/common/ColourTableDefinitionCompute.h
+++ b/src/common/ColourTableDefinitionCompute.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTableDefinitionCompute.h
\brief Definition of the Template class ColourTableDefinitionCompute.
diff --git a/src/common/ColourTableDefinitionComputeInterface.h b/src/common/ColourTableDefinitionComputeInterface.h
index 9ee3dba..f58efc6 100644
--- a/src/common/ColourTableDefinitionComputeInterface.h
+++ b/src/common/ColourTableDefinitionComputeInterface.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTableDefinitionComputeInterface.h
\brief Definition of the Template class ColourTableDefinitionComputeInterface.
diff --git a/src/common/ColourTableDefinitionList.cc b/src/common/ColourTableDefinitionList.cc
index a4bfb9a..53a93e1 100644
--- a/src/common/ColourTableDefinitionList.cc
+++ b/src/common/ColourTableDefinitionList.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTableDefinitionList.cc
\brief Implementation of the Template class ColourTableDefinitionList.
diff --git a/src/common/ColourTableDefinitionList.h b/src/common/ColourTableDefinitionList.h
index 30e94ee..ae7dd7f 100644
--- a/src/common/ColourTableDefinitionList.h
+++ b/src/common/ColourTableDefinitionList.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTableDefinitionList.h
\brief Definition of the Template class ColourTableDefinitionList.
diff --git a/src/common/ColourTableDefinitionListInterface.h b/src/common/ColourTableDefinitionListInterface.h
index 6373152..41b7b71 100644
--- a/src/common/ColourTableDefinitionListInterface.h
+++ b/src/common/ColourTableDefinitionListInterface.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTableDefinitionListInterface.h
\brief Definition of the Template class ColourTableDefinitionListInterface.
diff --git a/src/common/Coordinate.cc b/src/common/Coordinate.cc
index cd8220e..c9b1c6e 100644
--- a/src/common/Coordinate.cc
+++ b/src/common/Coordinate.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Coordinate.cc
\brief Implementation of the Template class Coordinate.
diff --git a/src/common/Coordinate.h b/src/common/Coordinate.h
index ebd5226..5162440 100644
--- a/src/common/Coordinate.h
+++ b/src/common/Coordinate.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Coordinate.h
\brief Definition of the Template class Coordinate.
diff --git a/src/common/CustomisedPoint.h b/src/common/CustomisedPoint.h
index ad25158..4db9f93 100644
--- a/src/common/CustomisedPoint.h
+++ b/src/common/CustomisedPoint.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CustomisedPoint.h
\brief Definition of the Template class CustomisedPoint.
diff --git a/src/common/Data.cc b/src/common/Data.cc
index 738961b..4bd3438 100644
--- a/src/common/Data.cc
+++ b/src/common/Data.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Data.h
\brief Definition of the Abstract template class Data.
diff --git a/src/common/Data.h b/src/common/Data.h
index 9041c50..dd34b23 100644
--- a/src/common/Data.h
+++ b/src/common/Data.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Data.h
\brief Definition of the Abstract template class Data.
@@ -86,6 +78,10 @@ public:
virtual void getReady(const Transformation&) {}
virtual void visit(Transformation&) {}
+
+ // Method to access some metada from the data
+ // This can be used to define some style Like in advanced curve setting!
+ virtual void getInfo(map<string, string>&) {}
//! Methods to access the data as a file used by pplot action routine
virtual string path() { throw DataInMemory(); }
diff --git a/src/common/DataStats.cc b/src/common/DataStats.cc
index d14dcd2..b0e9865 100644
--- a/src/common/DataStats.cc
+++ b/src/common/DataStats.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file DataStats.cc
\brief Implementation of the class DataStats.
diff --git a/src/common/DataStats.h b/src/common/DataStats.h
index a361607..f299deb 100644
--- a/src/common/DataStats.h
+++ b/src/common/DataStats.h
@@ -1,21 +1,12 @@
-
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file DataStats.h
\brief Definition of the class dataStats.
diff --git a/src/common/Decoder.h b/src/common/Decoder.h
index d1b2f88..62c44e7 100644
--- a/src/common/Decoder.h
+++ b/src/common/Decoder.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Decoder.h
\brief Definition of the Abstract template class Decoder.
diff --git a/src/common/Dimension.cc b/src/common/Dimension.cc
index e1b17d8..2ccc810 100644
--- a/src/common/Dimension.cc
+++ b/src/common/Dimension.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Dimension.h
\brief Implementation of the Template class Dimension.
diff --git a/src/common/Dimension.h b/src/common/Dimension.h
index e4a6ef6..2d87665 100644
--- a/src/common/Dimension.h
+++ b/src/common/Dimension.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Dimension.h
\brief Definition of the Template class Dimension.
diff --git a/src/common/DriverStatic.cc b/src/common/DriverStatic.cc
index 27a64d0..d701078 100644
--- a/src/common/DriverStatic.cc
+++ b/src/common/DriverStatic.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file DriverStatic.cc
\brief Implementation of the Template class DriverStatic.
diff --git a/src/common/DriverStatic.h b/src/common/DriverStatic.h
index cb0abde..450d86d 100644
--- a/src/common/DriverStatic.h
+++ b/src/common/DriverStatic.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file DriverStatic.h
\brief Definition of the Template class DriverStatic.
diff --git a/src/common/Factory.cc b/src/common/Factory.cc
index b6eeee4..0285139 100644
--- a/src/common/Factory.cc
+++ b/src/common/Factory.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Factory.cc
\brief Definition of Parameter base class.
diff --git a/src/common/Factory.h b/src/common/Factory.h
index 6a67cc5..63a463b 100644
--- a/src/common/Factory.h
+++ b/src/common/Factory.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Factory.h
\brief Definition of Factory class.
diff --git a/src/common/Flag.cc b/src/common/Flag.cc
index fcc7eb0..22da5ef 100644
--- a/src/common/Flag.cc
+++ b/src/common/Flag.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Flag.cc
\brief Implementation of the Template class Flag.
diff --git a/src/common/Flag.h b/src/common/Flag.h
index 154b087..a30dde6 100644
--- a/src/common/Flag.h
+++ b/src/common/Flag.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Flag.h
\brief Definition of the Template class Flag.
diff --git a/src/common/Frame.cc b/src/common/Frame.cc
index ea31f0e..714b1d0 100644
--- a/src/common/Frame.cc
+++ b/src/common/Frame.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Frame.h
\brief Implementation of the Template class Frame.
diff --git a/src/common/Frame.h b/src/common/Frame.h
index acdb73d..de3cd60 100644
--- a/src/common/Frame.h
+++ b/src/common/Frame.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Frame.h
\brief Definition of the Template class Frame.
diff --git a/src/common/FrameBase.cc b/src/common/FrameBase.cc
index 8838cdd..063bed6 100644
--- a/src/common/FrameBase.cc
+++ b/src/common/FrameBase.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file FrameBase.cc
\brief Implementation of the Template class FrameBase.
diff --git a/src/common/FrameBase.h b/src/common/FrameBase.h
index eefb5d2..2e1652f 100644
--- a/src/common/FrameBase.h
+++ b/src/common/FrameBase.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file FrameBase.h
\brief Definition of the Template class FrameBase.
diff --git a/src/common/FullPaperPoint.h b/src/common/FullPaperPoint.h
index 963fdbb..2dba01a 100644
--- a/src/common/FullPaperPoint.h
+++ b/src/common/FullPaperPoint.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PaperPoint.h
\brief Definition of Point (x, y, z, v).
diff --git a/src/common/GeoPoint.h b/src/common/GeoPoint.h
index 519d409..569cb8f 100644
--- a/src/common/GeoPoint.h
+++ b/src/common/GeoPoint.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File UserPoint
// Sylvie Lamy-Thepaut ECMWF 2002
diff --git a/src/common/GeoRectangularProjection.cc b/src/common/GeoRectangularProjection.cc
index 746c920..d381c54 100644
--- a/src/common/GeoRectangularProjection.cc
+++ b/src/common/GeoRectangularProjection.cc
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GeoRectangularProjection.cc
\brief Implementation of GeoRectangularProjection.
diff --git a/src/common/GeoRectangularProjection.h b/src/common/GeoRectangularProjection.h
index 79db350..ffa31b3 100644
--- a/src/common/GeoRectangularProjection.h
+++ b/src/common/GeoRectangularProjection.h
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*!
\file GeoRectangularProjection.h
diff --git a/src/common/GribInterpretor.h b/src/common/GribInterpretor.h
index 10c0783..3a42871 100644
--- a/src/common/GribInterpretor.h
+++ b/src/common/GribInterpretor.h
@@ -1,22 +1,12 @@
-
-
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Matrix.h
\brief Implementation of the Template class Matrix.
diff --git a/src/common/HeightTableDefinition.h b/src/common/HeightTableDefinition.h
index 6a506bd..e8602fa 100644
--- a/src/common/HeightTableDefinition.h
+++ b/src/common/HeightTableDefinition.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightTableDefinition.h
\brief Definition of Colour class.
diff --git a/src/common/Image.h b/src/common/Image.h
index 74e4576..03ab021 100644
--- a/src/common/Image.h
+++ b/src/common/Image.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Image.h
\brief Definition of the Template class Image.
diff --git a/src/common/ImageProperties.h b/src/common/ImageProperties.h
index 1525a66..9123a28 100644
--- a/src/common/ImageProperties.h
+++ b/src/common/ImageProperties.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ImageProperties.h
\brief Definition of the Template class ImageProperties.
diff --git a/src/common/ImportObject.cc b/src/common/ImportObject.cc
index 45a4d64..8fbcbf5 100644
--- a/src/common/ImportObject.cc
+++ b/src/common/ImportObject.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ImportObject.h
\brief Implementation of the Template class ImportObject.
diff --git a/src/common/ImportObject.h b/src/common/ImportObject.h
index ce44641..1770def 100644
--- a/src/common/ImportObject.h
+++ b/src/common/ImportObject.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ImportObject.h
\brief Definition of the Template class ImportObject.
diff --git a/src/common/InteractiveSet.cc b/src/common/InteractiveSet.cc
index 4afa5ec..a1fb21d 100644
--- a/src/common/InteractiveSet.cc
+++ b/src/common/InteractiveSet.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File InteractiveSet.cc
// Magics Team - ECMWF 2004
diff --git a/src/common/InteractiveSet.h b/src/common/InteractiveSet.h
index 3a9457e..c5d22d8 100644
--- a/src/common/InteractiveSet.h
+++ b/src/common/InteractiveSet.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file InteractiveSet.h
\brief Implementation of InteractiveSet class.
diff --git a/src/common/IntervalMap.h b/src/common/IntervalMap.h
index 141d845..78fa321 100644
--- a/src/common/IntervalMap.h
+++ b/src/common/IntervalMap.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IntervalMap.h
\brief Definition of the Template class IntervalMap
diff --git a/src/common/Label.cc b/src/common/Label.cc
index 58e6e3b..99820ca 100644
--- a/src/common/Label.cc
+++ b/src/common/Label.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Label.h
\brief Implementation of the Template class Label.
diff --git a/src/common/Label.h b/src/common/Label.h
index 258c909..4857ad7 100644
--- a/src/common/Label.h
+++ b/src/common/Label.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Label.h
\brief Definition of the Template class Label.
diff --git a/src/common/Layout.cc b/src/common/Layout.cc
index d69c8ec..b86c314 100644
--- a/src/common/Layout.cc
+++ b/src/common/Layout.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Layout.cc
\brief Implementation of the Template class Layout.
diff --git a/src/common/Layout.h b/src/common/Layout.h
index f138062..872c07e 100644
--- a/src/common/Layout.h
+++ b/src/common/Layout.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Layout.h
\brief Definition of the Template class Layout.
diff --git a/src/common/LevelTableDefinition.h b/src/common/LevelTableDefinition.h
index 2604a46..0ac137c 100644
--- a/src/common/LevelTableDefinition.h
+++ b/src/common/LevelTableDefinition.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LevelTableDefinition.h
\brief Definition of Colour class.
diff --git a/src/common/LogoPlotting.cc b/src/common/LogoPlotting.cc
index 9da5368..f1ea695 100644
--- a/src/common/LogoPlotting.cc
+++ b/src/common/LogoPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LogoPlotting.cc
\brief Implementation of the Template class LogoPlotting.
diff --git a/src/common/LogoPlotting.h b/src/common/LogoPlotting.h
index 5698cb9..25ecf38 100644
--- a/src/common/LogoPlotting.h
+++ b/src/common/LogoPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LogoPlotting.h
\brief Definition of the Template class LogoPlotting.
diff --git a/src/common/LogoPlottingBase.h b/src/common/LogoPlottingBase.h
index 13e3de5..a2fc3c4 100644
--- a/src/common/LogoPlottingBase.h
+++ b/src/common/LogoPlottingBase.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagLogoPlottingBase.h
\brief Definition of the Template class MagLogoPlottingBase.
diff --git a/src/common/MagException.cc b/src/common/MagException.cc
index 6693d5c..cba1bc3 100644
--- a/src/common/MagException.cc
+++ b/src/common/MagException.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Exception
// Sylvie Lamy-Thepaut - ECMWF Mar 02
diff --git a/src/common/MagException.h b/src/common/MagException.h
index ca10b16..b7e159f 100644
--- a/src/common/MagException.h
+++ b/src/common/MagException.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef MagicsException_H
#define MagicsException_H
diff --git a/src/common/MagExceptions.cc b/src/common/MagExceptions.cc
index f0a9c9f..b5b96e0 100644
--- a/src/common/MagExceptions.cc
+++ b/src/common/MagExceptions.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#include <signal.h>
diff --git a/src/common/MagExceptions.h b/src/common/MagExceptions.h
index a46a4dc..c9a08c5 100644
--- a/src/common/MagExceptions.h
+++ b/src/common/MagExceptions.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef MagMagExceptions_H
#define MagMagExceptions_H
diff --git a/src/common/MagFont.cc b/src/common/MagFont.cc
index f966334..6f2b6b3 100644
--- a/src/common/MagFont.cc
+++ b/src/common/MagFont.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagFont.cc
\brief Implementation of the Template class MagFont.
diff --git a/src/common/MagFont.h b/src/common/MagFont.h
index 1204620..307d528 100644
--- a/src/common/MagFont.h
+++ b/src/common/MagFont.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagFont.h
\brief Definition of the Template class MagFont.
diff --git a/src/common/MagLog.cc b/src/common/MagLog.cc
index 1d1c213..a82b6aa 100644
--- a/src/common/MagLog.cc
+++ b/src/common/MagLog.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagLog.cc
\brief Implementation of the MagLog class.
diff --git a/src/common/MagLog.h b/src/common/MagLog.h
index 84e3ee1..afeca27 100644
--- a/src/common/MagLog.h
+++ b/src/common/MagLog.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagLog.h
\brief Definition of log class.
diff --git a/src/common/MagTranslator.h b/src/common/MagTranslator.h
index 8570b7e..eec3bdd 100644
--- a/src/common/MagTranslator.h
+++ b/src/common/MagTranslator.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagTranslator.h
\brief Definition of MagTranslator class.
diff --git a/src/common/MagicsCalls.cc b/src/common/MagicsCalls.cc
index 962dffe..5f4b41a 100644
--- a/src/common/MagicsCalls.cc
+++ b/src/common/MagicsCalls.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagicsCalls.cc
\brief Implementation of Fortran and C interface
diff --git a/src/common/MagicsFormat.cc b/src/common/MagicsFormat.cc
index 9bf1345..26b7cbf 100644
--- a/src/common/MagicsFormat.cc
+++ b/src/common/MagicsFormat.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#include "MagicsFormat.h"
#include <ios>
@@ -44,6 +36,31 @@ bool MagicsFormat::valid(ostream& out) const
out << bufr;
return true;
}
+
+ /* Added to allow rounded values to appear on a contour with a 'PS' prefix for positive figures and to remove '-' from negative figures */
+
+ if ( magCompare(format_, "(aeronautical)") || magCompare(format_, "aeronautical" ) )
+ {
+ char bufr[256];
+ double trVal=trunc(value_);
+ if(value_ == trVal && static_cast<double>(static_cast<int>(trVal)) == trVal)
+ {
+ if(static_cast<int>(trVal)<0)
+ sprintf(bufr, "%d", -static_cast<int>(trVal));
+ else
+ sprintf(bufr, "PS%d", static_cast<int>(trVal));
+ }
+ else
+ {
+ if(value_<0)
+ sprintf(bufr, "%.0f", -value_);
+ else
+ sprintf(bufr, "PS%.0f", value_);
+ }
+
+ out << bufr;
+ return true;
+ }
string print = "%g";
string flags;
diff --git a/src/common/MagicsFormat.h b/src/common/MagicsFormat.h
index d447a34..332b823 100644
--- a/src/common/MagicsFormat.h
+++ b/src/common/MagicsFormat.h
@@ -1,22 +1,15 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
-#ifndef MagicsFormat_H
-#define MagicsFormat_H
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
+
+#ifndef MagicsFormat_H
+#define MagicsFormat_H
#include "magics.h"
@@ -37,7 +30,7 @@ public:
{
return manip.format(out);
}
- string format_;
+ string format_;
double value_;
};
diff --git a/src/common/MagicsParameter.cc b/src/common/MagicsParameter.cc
index f7f7d41..0838779 100644
--- a/src/common/MagicsParameter.cc
+++ b/src/common/MagicsParameter.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File MagicsParameter.cc
// Magics Team - ECMWF 2004
diff --git a/src/common/MagicsParameter.h b/src/common/MagicsParameter.h
index e535a99..ad7b11d 100644
--- a/src/common/MagicsParameter.h
+++ b/src/common/MagicsParameter.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagicsParameter.h
\brief Definition of the MagicsParameter template class.
diff --git a/src/common/MagicsSingleton.h b/src/common/MagicsSingleton.h
index 99c7a9c..3f432a0 100644
--- a/src/common/MagicsSingleton.h
+++ b/src/common/MagicsSingleton.h
@@ -1,21 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
-
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagicsSingleton.h
diff --git a/src/common/MagicsThreads.cc b/src/common/MagicsThreads.cc
index 8ef722e..c12c8e8 100644
--- a/src/common/MagicsThreads.cc
+++ b/src/common/MagicsThreads.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagicsThreads.cc
\brief Implementation of the Template class MagicsThreads.
diff --git a/src/common/MagicsThreads.h b/src/common/MagicsThreads.h
index b1cee81..a1fc9c2 100644
--- a/src/common/MagicsThreads.h
+++ b/src/common/MagicsThreads.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MagicsThreads.h
\brief Definition of the Template class MagicsThreads.
diff --git a/src/common/Matrix.cc b/src/common/Matrix.cc
index b3c7940..254acb8 100644
--- a/src/common/Matrix.cc
+++ b/src/common/Matrix.cc
@@ -1,22 +1,12 @@
-
-
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Matrix.h
\brief Implementation of the Template class Matrix.
@@ -607,10 +597,13 @@ double Matrix::operator()(int row, int column) const
GeoBoxMatrixHandler::GeoBoxMatrixHandler(const AbstractMatrix& matrix, const Transformation& transformation):
TransformMatrixHandler(matrix), transformation_(transformation), original_(0)
{
+
map<double, int> lats;
map<double, int> lons;
+
double lon, lat;
double minlon, minlat, maxlon, maxlat;
+
transformation.boundingBox(minlon, minlat, maxlon, maxlat);
@@ -644,12 +637,10 @@ GeoBoxMatrixHandler::GeoBoxMatrixHandler(const AbstractMatrix& matrix, const Tra
for (int i = 0; i < columns; i++)
{
lon = matrix_.regular_column(i);
-
- if ( minlon <= lon && lon <= maxlon)
+ if ( minlon <= lon && lon <= maxlon)
lons[lon] = i;
double ml = lon - 360;
-
while ( ml >= minlon && ml <= maxlon ) { lons[ml] = i; ml -= 360; }
ml = lon + 360;
while ( ml >= minlon && ml <= maxlon ) { lons[ml] = i; ml += 360; }
@@ -671,7 +662,9 @@ GeoBoxMatrixHandler::GeoBoxMatrixHandler(const AbstractMatrix& matrix, const Tra
for (int i = 0; i < rows; i++) {
lat = matrix_.regular_row(i);
- if ( minlat <= lat && lat <= maxlat) lats[lat] = i;
+ if ( minlat <= lat && lat <= maxlat)
+ lats[lat] = i;
+
}
i = 0;
@@ -682,7 +675,7 @@ GeoBoxMatrixHandler::GeoBoxMatrixHandler(const AbstractMatrix& matrix, const Tra
i++;
}
-
+
}
MatrixHandler* RotatedMatrix::getReady(const Transformation&) const
{
diff --git a/src/common/Matrix.h b/src/common/Matrix.h
index e6b516e..6c4c7af 100644
--- a/src/common/Matrix.h
+++ b/src/common/Matrix.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Matrix.h
\brief Definition of the Template class Matrix.
diff --git a/src/common/MatrixHandler.h b/src/common/MatrixHandler.h
index 8454abe..2e3aea7 100644
--- a/src/common/MatrixHandler.h
+++ b/src/common/MatrixHandler.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MatrixHandler.h
\brief Definition of the Template class MatrixHandler.
@@ -226,8 +218,9 @@ public :
virtual int firstColumn() const { return matrix_.firstColumn(); }
virtual int nextColumn(int j, int f) const { return matrix_.nextColumn(j, f); }
- void setMinMax() const {
- int nb_rows = rows();
+ virtual void setMinMax() const {
+
+ int nb_rows = rows();
int nb_columns = columns();
double missing = matrix_.missing();
@@ -242,20 +235,24 @@ public :
}
double min() const {
- if ( min_ != INT_MAX)
+
+ if ( min_ != INT_MAX)
return min_;
setMinMax();
- return min_;
+ return min_;
+
}
- double max() const {
- if ( max_ != -INT_MAX)
+ double max() const {
+
+
+ if ( max_ != -INT_MAX)
return max_;
-
+
setMinMax();
- return max_;
- }
+ return max_;
+ }
virtual double minX() const { return matrix_.minX(); }
virtual double maxX() const { return matrix_.maxX(); }
@@ -645,10 +642,12 @@ public:
}
return -1;
}
+
+
inline double column(int, int column) const {
return regular_longitudes_[column];
- }
+ }
inline double row(int row, int) const {
return regular_latitudes_[row];
}
diff --git a/src/common/MetaData.cc b/src/common/MetaData.cc
index 870a888..9744e7f 100644
--- a/src/common/MetaData.cc
+++ b/src/common/MetaData.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MetaData.h
\brief Implementation of the Template class MetaData.
diff --git a/src/common/MetaData.h b/src/common/MetaData.h
index 14e1784..9ff5230 100644
--- a/src/common/MetaData.h
+++ b/src/common/MetaData.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MetaData.h
\brief Definition of the Template class MetaData.
diff --git a/src/common/Mutex.cc b/src/common/Mutex.cc
index 5034c19..116fa72 100644
--- a/src/common/Mutex.cc
+++ b/src/common/Mutex.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef marsmachine_H
#include "marsmachine.h"
diff --git a/src/common/Mutex.h b/src/common/Mutex.h
index 9c7f41a..6bdcabb 100644
--- a/src/common/Mutex.h
+++ b/src/common/Mutex.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Mutex.h
// Baudouin Raoult - ECMWF May 96
diff --git a/src/common/MutexCond.cc b/src/common/MutexCond.cc
index d126652..ed6dc43 100644
--- a/src/common/MutexCond.cc
+++ b/src/common/MutexCond.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#include <time.h>
diff --git a/src/common/MutexCond.h b/src/common/MutexCond.h
index a3f8834..ec73141 100644
--- a/src/common/MutexCond.h
+++ b/src/common/MutexCond.h
@@ -1,36 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************//******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File MutexCond.h
// Baudouin Raoult - ECMWF Jun 96
diff --git a/src/common/Node.cc b/src/common/Node.cc
index 9e7402c..e153c33 100644
--- a/src/common/Node.cc
+++ b/src/common/Node.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Node.cc
\brief Implementation of the Template class Node.
diff --git a/src/common/Node.h b/src/common/Node.h
index 7ee99bb..4276099 100644
--- a/src/common/Node.h
+++ b/src/common/Node.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Node.h
\brief Definition of the Template class Node.
diff --git a/src/common/OutputFactory.cc b/src/common/OutputFactory.cc
index a52ea7b..163fafb 100644
--- a/src/common/OutputFactory.cc
+++ b/src/common/OutputFactory.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file OutputFactory.cc
\brief Implementation of the Template class OutputFactory.
diff --git a/src/common/OutputFactory.h b/src/common/OutputFactory.h
index 0656c27..bbdbfea 100644
--- a/src/common/OutputFactory.h
+++ b/src/common/OutputFactory.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file OutputFactory.h
\brief Definition of the Template class OutputFactory.
diff --git a/src/common/OutputHandler.cc b/src/common/OutputHandler.cc
index 94968a7..6b13f60 100644
--- a/src/common/OutputHandler.cc
+++ b/src/common/OutputHandler.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file OutputHandler.cc
\brief Implementation of the Template class OutputHandler.
diff --git a/src/common/OutputHandler.h b/src/common/OutputHandler.h
index 1cfec3b..6580efb 100644
--- a/src/common/OutputHandler.h
+++ b/src/common/OutputHandler.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file OutputHandler.h
\brief Definition of the Template class OutputHandler.
diff --git a/src/common/PageID.cc b/src/common/PageID.cc
index 8cd95a3..15a7564 100644
--- a/src/common/PageID.cc
+++ b/src/common/PageID.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PageID.h
\brief Implementation of the Template class PageID.
diff --git a/src/common/PageID.h b/src/common/PageID.h
index 7abaadc..63fc60a 100644
--- a/src/common/PageID.h
+++ b/src/common/PageID.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PageID.h
\brief Definition of the Template class PageID.
diff --git a/src/common/PageIDBase.h b/src/common/PageIDBase.h
index 5111c58..d14749b 100644
--- a/src/common/PageIDBase.h
+++ b/src/common/PageIDBase.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PageIDBase.h
\brief Definition of the Template class PageIDBase.
diff --git a/src/common/PaperDimension.h b/src/common/PaperDimension.h
index 972dd00..0c4f251 100644
--- a/src/common/PaperDimension.h
+++ b/src/common/PaperDimension.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PaperDimension.h
\brief Definition of the Template class PaperDimension.
diff --git a/src/common/PaperPoint.h b/src/common/PaperPoint.h
index 63ccc71..26342e2 100644
--- a/src/common/PaperPoint.h
+++ b/src/common/PaperPoint.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PaperPoint.h
\brief Definition of Point (x, y, z, v).
diff --git a/src/common/ParameterManager.cc b/src/common/ParameterManager.cc
index 2da6368..41ade70 100644
--- a/src/common/ParameterManager.cc
+++ b/src/common/ParameterManager.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ParameterManager.cc
Magics Team - ECMWF 2004
diff --git a/src/common/ParameterManager.h b/src/common/ParameterManager.h
index 537a97f..6132795 100644
--- a/src/common/ParameterManager.h
+++ b/src/common/ParameterManager.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ParameterManager.h
\brief Handles the Magics Parameters
diff --git a/src/common/Path.h b/src/common/Path.h
index 06e4b3a..1bdd6fb 100644
--- a/src/common/Path.h
+++ b/src/common/Path.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Path
// Sylvie Lamy-Thepaut - ECMWF Mar 02
diff --git a/src/common/PlotManager.cc b/src/common/PlotManager.cc
index d29e53e..e64eacf 100644
--- a/src/common/PlotManager.cc
+++ b/src/common/PlotManager.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PlotManager.cc
\brief Implementation of the Template class PlotManager.
diff --git a/src/common/PlotManager.h b/src/common/PlotManager.h
index 456fbd1..7a477b2 100644
--- a/src/common/PlotManager.h
+++ b/src/common/PlotManager.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PlotManager.h
\brief Definition of the Template class PlotManager.
diff --git a/src/common/PointsHandler.cc b/src/common/PointsHandler.cc
index 4780096..db4b4f5 100644
--- a/src/common/PointsHandler.cc
+++ b/src/common/PointsHandler.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PointsHandler.h
\brief Definition of the Template class PointsHandler.
diff --git a/src/common/PointsHandler.h b/src/common/PointsHandler.h
index aca5ca0..ebb8019 100644
--- a/src/common/PointsHandler.h
+++ b/src/common/PointsHandler.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PointsHandler.h
\brief Definition of the Template class PointsHandler.
diff --git a/src/common/PolarStereographicProjection.cc b/src/common/PolarStereographicProjection.cc
index be82d54..6c3789c 100644
--- a/src/common/PolarStereographicProjection.cc
+++ b/src/common/PolarStereographicProjection.cc
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreedto in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PolarStereographicProjection.cc
\brief Implementation of PolarStereographicProjection.
diff --git a/src/common/PolarStereographicProjection.h b/src/common/PolarStereographicProjection.h
index 61698c3..cb0fa88 100644
--- a/src/common/PolarStereographicProjection.h
+++ b/src/common/PolarStereographicProjection.h
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*!
\file PolarStereographicProjection.h
diff --git a/src/common/PolyCoast.h b/src/common/PolyCoast.h
index 4b58ccb..49d8960 100644
--- a/src/common/PolyCoast.h
+++ b/src/common/PolyCoast.h
@@ -1,21 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
-
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PolyCoast.h
\brief Definition of the Template class CoastPlotting.
diff --git a/src/common/Polyline.cc b/src/common/Polyline.cc
index af51193..9a5e381 100644
--- a/src/common/Polyline.cc
+++ b/src/common/Polyline.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Polyline.cc
\brief Implementation of polyline graphics class (template).
diff --git a/src/common/Polyline.h b/src/common/Polyline.h
index a0c4ffc..d529ad1 100644
--- a/src/common/Polyline.h
+++ b/src/common/Polyline.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Polyline.h
\brief Definition of polyline graphics class.
diff --git a/src/common/ProgressObject.cc b/src/common/ProgressObject.cc
index dd08613..a5170fb 100644
--- a/src/common/ProgressObject.cc
+++ b/src/common/ProgressObject.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File ProgressObject.cc
// Magics Team - ECMWF 2004
diff --git a/src/common/ProgressObject.h b/src/common/ProgressObject.h
index 8d47b08..bc04a03 100644
--- a/src/common/ProgressObject.h
+++ b/src/common/ProgressObject.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File ProgressObject.h
// Magics Team - ECMWF 2004
diff --git a/src/common/ProgressTask.cc b/src/common/ProgressTask.cc
index 74b4a5a..d259577 100644
--- a/src/common/ProgressTask.cc
+++ b/src/common/ProgressTask.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File ProgressTask.cc
// Magics Team - ECMWF 2004
diff --git a/src/common/ProgressTask.h b/src/common/ProgressTask.h
index 1ace422..23cb992 100644
--- a/src/common/ProgressTask.h
+++ b/src/common/ProgressTask.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File ProgressTask.h
// Magics Team - ECMWF 2004
diff --git a/src/common/Proj4Projection.cc b/src/common/Proj4Projection.cc
index b337c0c..1668fc2 100644
--- a/src/common/Proj4Projection.cc
+++ b/src/common/Proj4Projection.cc
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Proj4Projection.cc
\brief Implementation of Proj4Projection.
diff --git a/src/common/Proj4Projection.h b/src/common/Proj4Projection.h
index 822485c..1980e9b 100644
--- a/src/common/Proj4Projection.h
+++ b/src/common/Proj4Projection.h
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*!
\file Proj4Projection.h
diff --git a/src/common/RasterData.cc b/src/common/RasterData.cc
index 952419d..9ecb04d 100644
--- a/src/common/RasterData.cc
+++ b/src/common/RasterData.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file RasterData.cc
\brief Implementation of the Template class RasterData.
diff --git a/src/common/RasterData.h b/src/common/RasterData.h
index 3cd1a11..b1fadde 100644
--- a/src/common/RasterData.h
+++ b/src/common/RasterData.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file RasterData.h
\brief Definition of the Template class RasterData.
diff --git a/src/common/SciMethods.cc b/src/common/SciMethods.cc
index b2fdd25..8196268 100644
--- a/src/common/SciMethods.cc
+++ b/src/common/SciMethods.cc
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*!
\file SciMethods.cc
diff --git a/src/common/SciMethods.h b/src/common/SciMethods.h
index 3d21131..bb8c581 100644
--- a/src/common/SciMethods.h
+++ b/src/common/SciMethods.h
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*!
\file SciMethods.h
diff --git a/src/common/Seconds.cc b/src/common/Seconds.cc
index 8c884ef..c6d64cb 100644
--- a/src/common/Seconds.cc
+++ b/src/common/Seconds.cc
@@ -1,23 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
-
-
-
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#include "Seconds.h"
diff --git a/src/common/Seconds.h b/src/common/Seconds.h
index 3183601..17c2fd0 100644
--- a/src/common/Seconds.h
+++ b/src/common/Seconds.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Seconds.h
// Baudouin Raoult - ECMWF Jul 96
diff --git a/src/common/Static.cc b/src/common/Static.cc
index 535d9d6..342a09c 100644
--- a/src/common/Static.cc
+++ b/src/common/Static.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#include "Static.h"
#include "MagException.h"
diff --git a/src/common/Static.h b/src/common/Static.h
index 41ada13..f8f5695 100644
--- a/src/common/Static.h
+++ b/src/common/Static.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef Static_H
#define Static_H
diff --git a/src/common/Symbol.cc b/src/common/Symbol.cc
index ffc4f3f..c9d7fac 100644
--- a/src/common/Symbol.cc
+++ b/src/common/Symbol.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Symbol.cc
\brief Implementation of Symbol graphics class (template).
diff --git a/src/common/Symbol.h b/src/common/Symbol.h
index e98d0cc..fa289c5 100644
--- a/src/common/Symbol.h
+++ b/src/common/Symbol.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Symbol.h
\brief Definition of Symbol graphics class.
diff --git a/src/common/TableDefinition.h b/src/common/TableDefinition.h
index 03044ef..fb3c89d 100644
--- a/src/common/TableDefinition.h
+++ b/src/common/TableDefinition.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TableDefinition.h
\brief Definition of the Template class TableDefinition.
diff --git a/src/common/TableDefinitionCompute.cc b/src/common/TableDefinitionCompute.cc
index 5ca18e5..f355768 100644
--- a/src/common/TableDefinitionCompute.cc
+++ b/src/common/TableDefinitionCompute.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TableDefinitionCompute.cc
\brief Implementation of the Template class TableDefinitionCompute.
diff --git a/src/common/TableDefinitionCompute.h b/src/common/TableDefinitionCompute.h
index fbbf6a5..562f2e9 100644
--- a/src/common/TableDefinitionCompute.h
+++ b/src/common/TableDefinitionCompute.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TableDefinitionCompute.h
\brief Definition of the Template class TableDefinitionCompute.
diff --git a/src/common/TableDefinitionComputeInterface.h b/src/common/TableDefinitionComputeInterface.h
index a9967e0..b9cc6a9 100644
--- a/src/common/TableDefinitionComputeInterface.h
+++ b/src/common/TableDefinitionComputeInterface.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TableDefinitionComputeInterface.h
\brief Definition of the Template class TableDefinitionComputeInterface.
diff --git a/src/common/TableDefinitionList.cc b/src/common/TableDefinitionList.cc
index e30a5d4..021b645 100644
--- a/src/common/TableDefinitionList.cc
+++ b/src/common/TableDefinitionList.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TableDefinitionList.cc
\brief Implementation of the Template class TableDefinitionList.
diff --git a/src/common/TableDefinitionList.h b/src/common/TableDefinitionList.h
index 7df1896..5ed1e9e 100644
--- a/src/common/TableDefinitionList.h
+++ b/src/common/TableDefinitionList.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TableDefinitionList.h
\brief Definition of the Template class TableDefinitionList.
diff --git a/src/common/TableDefinitionListInterface.h b/src/common/TableDefinitionListInterface.h
index 25492c9..08be853 100644
--- a/src/common/TableDefinitionListInterface.h
+++ b/src/common/TableDefinitionListInterface.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TableDefinitionListInterface.h
\brief Definition of the Template class TableDefinitionListInterface.
diff --git a/src/common/Task.cc b/src/common/Task.cc
index d047dae..ddca87c 100644
--- a/src/common/Task.cc
+++ b/src/common/Task.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef Task_H
#include "Task.h"
diff --git a/src/common/Task.h b/src/common/Task.h
index aaa446f..fc465ef 100644
--- a/src/common/Task.h
+++ b/src/common/Task.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Task.h
// Baudouin Raoult - ECMWF May 96
diff --git a/src/common/TaylorProjection.cc b/src/common/TaylorProjection.cc
index 1dbf4a9..ef69816 100644
--- a/src/common/TaylorProjection.cc
+++ b/src/common/TaylorProjection.cc
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TaylorProjection.cc
\brief Implementation of TaylorProjection.
diff --git a/src/common/TaylorProjection.h b/src/common/TaylorProjection.h
index 37bc935..1b821d4 100644
--- a/src/common/TaylorProjection.h
+++ b/src/common/TaylorProjection.h
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*!
\file TaylorProjection.h
diff --git a/src/common/Tephigram.cc b/src/common/Tephigram.cc
index 8445d9e..91aa55d 100644
--- a/src/common/Tephigram.cc
+++ b/src/common/Tephigram.cc
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Tephigram.cc
\brief Implementation of Tephigram.
diff --git a/src/common/Tephigram.h b/src/common/Tephigram.h
index 2a21524..c678766 100644
--- a/src/common/Tephigram.h
+++ b/src/common/Tephigram.h
@@ -1,22 +1,12 @@
-/******************************** LICENSE ********************************
-
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*!
\file Tephigram.h
diff --git a/src/common/Text.cc b/src/common/Text.cc
index 85da3da..56d8a11 100644
--- a/src/common/Text.cc
+++ b/src/common/Text.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Text.cc
\brief Implementation of Text graphics class (template).
diff --git a/src/common/Text.h b/src/common/Text.h
index 6ecb4e0..1a653eb 100644
--- a/src/common/Text.h
+++ b/src/common/Text.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Text.h
\brief Definition of Text graphics class.
diff --git a/src/common/Thread.cc b/src/common/Thread.cc
index 1e4eb6a..e9bd3a0 100644
--- a/src/common/Thread.cc
+++ b/src/common/Thread.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef marsmachine_H
#include "marsmachine.h"
diff --git a/src/common/Thread.h b/src/common/Thread.h
index 93749cd..169a2ae 100644
--- a/src/common/Thread.h
+++ b/src/common/Thread.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Thread.h
// Baudouin Raoult - ECMWF Jun 96
diff --git a/src/common/ThreadControler.cc b/src/common/ThreadControler.cc
index 3f6fc31..3d6e8fc 100644
--- a/src/common/ThreadControler.cc
+++ b/src/common/ThreadControler.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef marsmachine_H
#include "marsmachine.h"
diff --git a/src/common/ThreadControler.h b/src/common/ThreadControler.h
index 61a6583..852c3eb 100644
--- a/src/common/ThreadControler.h
+++ b/src/common/ThreadControler.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File ThreadControler.h
// Baudouin Raoult - ECMWF May 96
diff --git a/src/common/ThreadSingleton.cc b/src/common/ThreadSingleton.cc
index 2eec3cf..bb0e470 100755
--- a/src/common/ThreadSingleton.cc
+++ b/src/common/ThreadSingleton.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef marsmachine_H
#include "marsmachine.h"
diff --git a/src/common/ThreadSingleton.h b/src/common/ThreadSingleton.h
index 58d0cae..ad54d54 100755
--- a/src/common/ThreadSingleton.h
+++ b/src/common/ThreadSingleton.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File ThreadSingleton.h
// Baudouin Raoult - ECMWF Jun 96
diff --git a/src/common/Timer.cc b/src/common/Timer.cc
index 102b934..891c353 100644
--- a/src/common/Timer.cc
+++ b/src/common/Timer.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef marsmachine_H
#include "magics.h"
diff --git a/src/common/Timer.h b/src/common/Timer.h
index 5dc8699..b4f66a9 100644
--- a/src/common/Timer.h
+++ b/src/common/Timer.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Timer.h
// Baudouin Raoult - ECMWF May 96
diff --git a/src/common/Tokenizer.cc b/src/common/Tokenizer.cc
index 93a6327..42d8db0 100644
--- a/src/common/Tokenizer.cc
+++ b/src/common/Tokenizer.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef Tokenizer_H
#include "Tokenizer.h"
diff --git a/src/common/Tokenizer.h b/src/common/Tokenizer.h
index 7bd255b..90ea0d2 100644
--- a/src/common/Tokenizer.h
+++ b/src/common/Tokenizer.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
// File Tokenizer.h
// Manuel Fuentes - ECMWF Jan 97
diff --git a/src/common/Transformation.cc b/src/common/Transformation.cc
index 2645566..1dfde5a 100644
--- a/src/common/Transformation.cc
+++ b/src/common/Transformation.cc
@@ -8,19 +8,6 @@
* does it submit to any jurisdiction.
*/
-
-/******************************** LICENSE ********************************
-
- Copyright 2007 European Centre for Medium-Range Weather Forecasts (ECMWF)
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
-
// File Transformation.cc
// Magics Team - ECMWF 2004
diff --git a/src/common/Transformation.h b/src/common/Transformation.h
index 7284aaa..5fb4090 100644
--- a/src/common/Transformation.h
+++ b/src/common/Transformation.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \defgroup projections Geographical projections
diff --git a/src/common/UserPoint.h b/src/common/UserPoint.h
index a49fc1b..e9d56cf 100644
--- a/src/common/UserPoint.h
+++ b/src/common/UserPoint.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file UserPoint.h
\brief Definition of Point (x, y, z, v).
diff --git a/src/common/Visualiser.h b/src/common/Visualiser.h
index f2f62ec..164bab9 100644
--- a/src/common/Visualiser.h
+++ b/src/common/Visualiser.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Visualiser.h
\brief Definition of the Template class Visualiser.
diff --git a/src/common/XCoordinate.h b/src/common/XCoordinate.h
index 5958ccf..dd45f78 100644
--- a/src/common/XCoordinate.h
+++ b/src/common/XCoordinate.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XCoordinate.h
\brief Definition of the Template class XCoordinate.
diff --git a/src/common/XmlNode.cc b/src/common/XmlNode.cc
index a69dea9..4115bb1 100644
--- a/src/common/XmlNode.cc
+++ b/src/common/XmlNode.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XmlNode.cc
\brief Implementation of the Template class XmlNode.
diff --git a/src/common/XmlNode.h b/src/common/XmlNode.h
index e599d6e..63242ee 100644
--- a/src/common/XmlNode.h
+++ b/src/common/XmlNode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XmlNode.h
\brief Definition of the Template class XmlNode.
diff --git a/src/common/XmlReader.cc b/src/common/XmlReader.cc
index 8a87ab9..95c157a 100644
--- a/src/common/XmlReader.cc
+++ b/src/common/XmlReader.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XmlReader.cc
\brief Implementation of the Reader for Xml.
diff --git a/src/common/XmlReader.h b/src/common/XmlReader.h
index ae61151..06a7114 100644
--- a/src/common/XmlReader.h
+++ b/src/common/XmlReader.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XmlReader.h
\brief Definition of the Template class XmlReader.
diff --git a/src/common/XmlTree.cc b/src/common/XmlTree.cc
index 2ec6ed0..f588a86 100644
--- a/src/common/XmlTree.cc
+++ b/src/common/XmlTree.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XmlTree.h
\brief Implementation of the Template class XmlTree.
diff --git a/src/common/XmlTree.h b/src/common/XmlTree.h
index 06ba1e0..b796433 100644
--- a/src/common/XmlTree.h
+++ b/src/common/XmlTree.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XmlTree.h
\brief Definition of the Template class XmlTree.
diff --git a/src/common/YCoordinate.h b/src/common/YCoordinate.h
index 363ca83..3b5a8e4 100644
--- a/src/common/YCoordinate.h
+++ b/src/common/YCoordinate.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file XCoordinate.h
\brief Definition of the Template class XCoordinate.
diff --git a/src/common/aix.h b/src/common/aix.h
index d15b3e8..42cead3 100644
--- a/src/common/aix.h
+++ b/src/common/aix.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef MagicsAIX_H
#define MagicsAIX_H
diff --git a/src/common/linux.h b/src/common/linux.h
index b0e75c2..cfbf46d 100644
--- a/src/common/linux.h
+++ b/src/common/linux.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#include <stdio.h>
#include <pthread.h>
diff --git a/src/common/magics_api.h b/src/common/magics_api.h
index 7cc59bb..17ba06f 100644
--- a/src/common/magics_api.h
+++ b/src/common/magics_api.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file magics_api.h
\brief Implementation of C interface
diff --git a/src/common/marsmachine.h b/src/common/marsmachine.h
index 03a1628..1c6da51 100644
--- a/src/common/marsmachine.h
+++ b/src/common/marsmachine.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef marsmachine_H
#define marsmachine_H
diff --git a/src/decoders/Netcdf.cc b/src/decoders/Netcdf.cc
index a230f4d..a1fcdba 100644
--- a/src/decoders/Netcdf.cc
+++ b/src/decoders/Netcdf.cc
@@ -42,6 +42,7 @@ Convertor<From,To>::Convertor(NetVariable& var) : variable_(var)
To offset(0);
scale_factor_ = variable_.getAttribute("scale_factor", scale);
add_offset_ = variable_.getAttribute("add_offset", offset);
+ missing_ = variable_.getMissing();
}
@@ -96,9 +97,9 @@ Netcdf::~Netcdf()
double Netcdf::getMissing(const string& var, const string& attr)
{
- double missing = getAttribute(attr, getDefaultMissing(var));
- missing = getVariableAttribute(var, attr, missing);
- return missing;
+ missing_ = getAttribute(attr, getDefaultMissing(var));
+ missing_ = getVariableAttribute(var, attr, missing_);
+ return missing_;
}
void Netcdf::print(ostream& out) const
diff --git a/src/decoders/Netcdf.h b/src/decoders/Netcdf.h
index 606a5ef..0fc2f76 100644
--- a/src/decoders/Netcdf.h
+++ b/src/decoders/Netcdf.h
@@ -109,13 +109,14 @@ struct Convertor
{
Convertor(NetVariable& );
To operator()(From from)
- {
- return from * scale_factor_ + add_offset_;
+ {
+ return ( from != missing_) ? from * scale_factor_ + add_offset_ : missing_;
}
NetVariable& variable_;
To scale_factor_;
To add_offset_;
+ From missing_;
};
@@ -164,6 +165,7 @@ struct NetVariable
NcVar* id_;
map<string, NetDimension> dimensions_;
map<string, NetAttribute> attributes_;
+ double missing_;
NetVariable(const string& name, NcVar* id, const NcFile& file, const string& method);
@@ -220,6 +222,8 @@ struct NetVariable
s << "]" << "\n";
}
+
+ double getMissing() { return missing_; }
template <class T>
T getAttribute(const string& name, T def)
@@ -295,6 +299,7 @@ public:
map<string, NetVariable>::iterator var = variables_.find(name);
if ( var == variables_.end() ) throw NoSuchNetcdfVariable(name);
+ (*var).second.missing_ = missing_;
(*var).second.get(vals, first, last);
}
@@ -357,6 +362,7 @@ protected:
map<string, NetDimension> dimensions_;
map<string, NetVariable> dataset_;
map<string, NetAttribute> attributes_;
+ double missing_;
private:
NcFile file_;
diff --git a/src/decoders/NetcdfDecoder.cc b/src/decoders/NetcdfDecoder.cc
index a23160e..fc8962c 100644
--- a/src/decoders/NetcdfDecoder.cc
+++ b/src/decoders/NetcdfDecoder.cc
@@ -25,6 +25,7 @@
#include "Factory.h"
#include "Transformation.h"
#include "MagnifierVisitor.h"
+#include "MagJSon.h"
using namespace magics;
@@ -75,6 +76,14 @@ void NetcdfDecoder::visit(MagnifierVisitor& magnify)
}
+void NetcdfDecoder::getInfo(map<string, string>& infos)
+{
+ ParamJSon data(metadata_);
+
+ for (map<string, string>::iterator info = infos.begin(); info != infos.end(); ++info)
+ info->second = data.get(info->first, info->second);
+
+}
void NetcdfDecoder::visit(MetaDataCollector& mdc)
{
bool interpretorCalled=false;
diff --git a/src/decoders/NetcdfDecoder.h b/src/decoders/NetcdfDecoder.h
index 1af9662..f603d54 100644
--- a/src/decoders/NetcdfDecoder.h
+++ b/src/decoders/NetcdfDecoder.h
@@ -70,6 +70,8 @@ public:
void visit(Transformation& transformation) {
(*interpretor_).visit(transformation);
}
+
+ void getInfo(map<string, string>&);
MatrixHandler& matrix() {
MagLog::dev() << "NetcdfDecoder::matrix! " << "\n";
diff --git a/src/decoders/NetcdfGeoMatrixInterpretor.cc b/src/decoders/NetcdfGeoMatrixInterpretor.cc
index 851d2ae..bcf60b3 100644
--- a/src/decoders/NetcdfGeoMatrixInterpretor.cc
+++ b/src/decoders/NetcdfGeoMatrixInterpretor.cc
@@ -127,7 +127,7 @@ bool NetcdfGeoMatrixInterpretor::interpretAsPoints(PointsList& list)
vector<double> values;
map<string, string> first, last;
setDimensions(dimension_, first, last);
- double missing_value = missing(netcdf);
+ double missing_value = netcdf.getMissing(field_, missing_attribute_);
netcdf.get(field_, values, first, last);
netcdf.get(longitude_, longitudes, first, last);
diff --git a/src/drivers/CairoDriver.cc b/src/drivers/CairoDriver.cc
index 35c951d..c5a3c64 100644
--- a/src/drivers/CairoDriver.cc
+++ b/src/drivers/CairoDriver.cc
@@ -1514,9 +1514,9 @@ MAGICS_NO_EXPORT bool CairoDriver::renderCellArray(const Image& image) const
/*
const long dim=width*height;
unsigned char *chImage = new unsigned char[dim*4];
- int jj = 0;
+ long jj = 0;
// const Colour none("none");
- for(int j=0;j<dim; j++)
+ for(long j=0;j<dim; j++)
{
const short c = image[j];
@@ -1541,7 +1541,7 @@ MAGICS_NO_EXPORT bool CairoDriver::renderCellArray(const Image& image) const
}
}
- cairo_surface_t* surImage = cairo_image_surface_create_for_data(
+ cairo_surface_t* surfaceImage = cairo_image_surface_create_for_data(
chImage,
CAIRO_FORMAT_ARGB32,
width,
@@ -1554,10 +1554,10 @@ MAGICS_NO_EXPORT bool CairoDriver::renderCellArray(const Image& image) const
const double scY = (image.getHeight()*coordRatioY_) /height;
cairo_scale (cr_, scX, -scY);
- cairo_set_source_surface(cr_, surImage, 0, 0);
+ cairo_set_source_surface(cr_, surfaceImage, 0, 0);
cairo_paint(cr_);
- cairo_surface_destroy (surImage);
+ cairo_surface_destroy (surfaceImage);
*/
cairo_restore(cr_);
cairo_set_antialias(cr_, t);
@@ -1604,8 +1604,8 @@ MAGICS_NO_EXPORT void CairoDriver::renderSymbols(const Symbol& symbol) const
if(image)
{
cairo_save(cr_);
- int w = cairo_image_surface_get_width(image);
- int h = cairo_image_surface_get_height(image);
+ const int w = cairo_image_surface_get_width(image);
+ const int h = cairo_image_surface_get_height(image);
cairo_translate (cr_, projectX(symbol[0].x()), projectY(symbol[0].y()));
const MFloat scaling = convertCM(symbol.getHeight()*.1) / coordRatioY_;
diff --git a/src/drivers/PostScriptDriver.cc b/src/drivers/PostScriptDriver.cc
index d381d8b..450b460 100644
--- a/src/drivers/PostScriptDriver.cc
+++ b/src/drivers/PostScriptDriver.cc
@@ -1261,6 +1261,41 @@ MAGICS_NO_EXPORT bool PostScriptDriver::renderPixmap(MFloat x0,MFloat y0,MFloat
*/
MAGICS_NO_EXPORT bool PostScriptDriver::renderCellArray(const Image& image) const
{
+ ColourTable < = image.getColourTable();
+ const int width = image.getNumberOfColumns();
+ const int height = image.getNumberOfRows();
+// const double tr = image.getTransparency();
+ const MFloat x0 = image.getOrigin().x();
+ const MFloat y0 = image.getOrigin().y();
+ const double scX = (image.getWidth() ) /width;
+ const double scY = -(image.getHeight()) /height;
+
+ fstream *ps = getStream();
+ *ps << "gs" << std::endl;
+
+ for(unsigned int h=0;h<height; h++)
+ {
+ for(unsigned int w=0;w<width; w++)
+ {
+ const short c = image[w + (width*h)];
+ const float cr = lt[c].red();
+ const float cg = lt[c].green();
+ const float cb = lt[c].blue();
+ if(cr*cg*cb >=0){
+ setNewColour(Colour(cr,cg,cb));
+ writeColour();
+ const MFloat xx0 = x0+(w*scX);
+ const MFloat yy0 = y0+(h*scY);
+
+ MFloat x[4] = {xx0, xx0+scX, xx0+scX, xx0};
+ MFloat y[4] = {yy0, yy0 , yy0+scY, yy0+scY};
+ renderSimplePolygon(4, &x[0], &y[0]);
+ }
+ }
+ }
+ *ps << "gr" << std::endl;
+
+/*
ColourTable < = image.getColourTable();
const int width = image.getNumberOfColumns();
const int height = image.getNumberOfRows();
@@ -1359,6 +1394,7 @@ MAGICS_NO_EXPORT bool PostScriptDriver::renderCellArray(const Image& image) cons
{
MagLog::warning() << "PostScriptDriver: failed to plot CellArray with wrong dimensions! Width: "<<width<<" Height: "<<height << std::endl;
}
+*/
return true;
}
diff --git a/src/oda/OdaDecoder.cc b/src/oda/OdaDecoder.cc
index 107b21c..75d79d1 100644
--- a/src/oda/OdaDecoder.cc
+++ b/src/oda/OdaDecoder.cc
@@ -713,7 +713,6 @@ void OdaXYDecoder::customisedPoints(const Transformation& transformation, const
{
try
{
-
odb_start();
odb::Reader oda(path_);
@@ -902,7 +901,6 @@ void OdaXYDecoder::decode(const Transformation& transformation)
try
{
-
odb_start();
odb::Reader oda(path_);
diff --git a/src/params/Curve.xml b/src/params/Curve.xml
index e5272e0..db8fcbb 100644
--- a/src/params/Curve.xml
+++ b/src/params/Curve.xml
@@ -88,7 +88,7 @@ does it submit to any jurisdiction.
<set name="graph_missing_data_style" value="join"> </set>
<set name="graph_missing_data_colour" value="join"> </set>
<set name="graph_missing_data_thickness" value="join"> </set>
- <set name="graph_missing_data_style" value="drop"> </set>
+ <set name="graph_missing_data_style" value="drop"> </set>
<set name="graph_missing_data_colour" value="drop"> </set>
<set name="graph_missing_data_thickness" value="drop"> </set>
</parameter>
@@ -107,5 +107,58 @@ does it submit to any jurisdiction.
<documentation> If stepped, use an histogram style </documentation>
</parameter>
+
+ <parameter from="string" name="graph_style_setting" default="simple" member="style_setting" to="string" values="simple/advanced">
+ <documentation> Should we use the advanced setting advanced </documentation>
+ </parameter>
+
+ <parameter from="string" name="graph_line_style_variable_name" default="" member="style_key" to="string">
+ <documentation> Data Variable used for setting the line style of the segments </documentation>
+ </parameter>
+
+ <parameter from="stringarray" name="graph_line_style_value_list" default="stringarray()" member="style_keys" to="stringarray">
+ <documentation> list of line styles to use </documentation>
+ </parameter>
+
+ <parameter from="stringarray" name="graph_line_style_list" default="stringarray()" member="style_list" to="stringarray">
+ <documentation> list of line styles to use </documentation>
+ </parameter>
+
+ <parameter from="string" name="graph_line_style_list_policy" default="lastone" member="style_policy" to="ListPolicy">
+ <documentation> What to do if the list of line styles is smaller that the list of levels: lastone/cycle </documentation>
+ </parameter>
+
+ <parameter from="string" name="graph_colour_variable_name" default="" member="colour_key" to="string">
+ <documentation> Data Variable used for setting the line style of the segments </documentation>
+ </parameter>
+
+ <parameter from="stringarray" name="graph_colour_value_list" default="stringarray()" member="colour_keys" to="stringarray">
+ <documentation> list of line styles to use </documentation>
+ </parameter>
+
+ <parameter from="stringarray" name="graph_colour_list" default="stringarray()" member="colour_list" to="stringarray">
+ <documentation> list of line styles to use </documentation>
+ </parameter>
+
+ <parameter from="string" name="graph_colour_list_policy" default="lastone" member="colour_policy" to="ListPolicy">
+ <documentation> What to do if the list of line styles is smaller that the list of levels: lastone/cycle </documentation>
+ </parameter>
+
+ <parameter from="string" name="graph_thickness_variable_name" default="" member="thickness_key" to="string">
+ <documentation> Data Variable used for setting the line style of the segments </documentation>
+ </parameter>
+
+ <parameter from="stringarray" name="graph_thickness_value_list" default="stringarray()" member="thickness_keys" to="stringarray">
+ <documentation> list of line styles to use </documentation>
+ </parameter>
+
+ <parameter from="intarray" name="graph_thickness_list" default="intarray()" member="thickness_list" to="intarray">
+ <documentation> list of line styles to use </documentation>
+ </parameter>
+
+ <parameter from="string" name="graph_thickness_list_policy" default="lastone" member="thickness_policy" to="ListPolicy">
+ <documentation> What to do if the list of line styles is smaller that the list of levels: lastone/cycle </documentation>
+ </parameter>
+
</class></magics>
diff --git a/src/params/EpsGraph.xml b/src/params/EpsGraph.xml
index 7125ea0..a63793f 100644
--- a/src/params/EpsGraph.xml
+++ b/src/params/EpsGraph.xml
@@ -25,6 +25,11 @@ does it submit to any jurisdiction.
</parameter>
<parameter member="box_shift" to="int" default="0" from="int" name="eps_box_shift">
</parameter>
+ <parameter xml="box_quantiles_colour" from="stringarray" name="eps_box_quantiles_colour" default="stringarray()"
+ member="quantiles_colour" to="stringarray">
+ <documentation> if set, the list of colours will be used as follow colour1 between 10-25, colour2 between 25-75, colour3 between 75-90 </documentation>
+ </parameter>
+
<parameter xml="right_box_colour" from="string" name="eps_right_box_colour" default="red" member="right_colour" to="Colour">
</parameter>
<parameter xml="left_box_colour" from="string" name="eps_left_box_colour" default="blue" member="left_colour" to="Colour">
diff --git a/src/params/FortranViewNode.xml b/src/params/FortranViewNode.xml
index 06dd41f..23ff56b 100644
--- a/src/params/FortranViewNode.xml
+++ b/src/params/FortranViewNode.xml
@@ -36,8 +36,8 @@ does it submit to any jurisdiction.
<documentation>Projection to set in the drawing area </documentation>
<option xml="cylindrical" fortran="cylindrical" include="GeoRectangularProjection.h" name="GeoRectangularProjection"> </option>
-
- <option xml="polar_stereographic" fortran="polar_stereographic" include="PolarStereographicProjection.h" name="PolarStereographicProjection"> </option>
+
+ <option xml="polar_stereographic" fortran="polar_stereographic" include="PolarStereographicProjection.h" name="PolarStereographicProjection"> </option>
<option fortran="polar_north" include="Proj4Projection.h" name="Proj4PolarNorth"> </option>
<option fortran="geos" include="Proj4Projection.h" name="Proj4Geos"> </option>
<option fortran="meteosat" include="Proj4Projection.h" name="Proj4Meteosat0"> </option>
@@ -46,7 +46,8 @@ does it submit to any jurisdiction.
<option fortran="goes_west" include="Proj4Projection.h" name="Proj4Geosw"> </option-->
<option fortran="goes_east" include="Proj4Projection.h" name="Proj4Geose"> </option>
<option fortran="lambert" include="Proj4Projection.h" name="Proj4Lambert"> </option>
- <option fortran="EPSG3857" include="Proj4Projection.h" name="Proj4EPSG3857"> </option>
+ <option fortran="EPSG:3857" include="Proj4Projection.h" name="Proj4EPSG3857"> </option>
+ <option fortran="EPSG:4326" include="Proj4Projection.h" name="Proj4EPSG4326"> </option>
<option fortran="goode" include="Proj4Projection.h" name="Proj4Goode"> </option>
<option fortran="collignon" include="Proj4Projection.h" name="Proj4Collignon"> </option>
<option fortran="mollweide" include="Proj4Projection.h" name="Proj4Mollweide"> </option>
@@ -54,9 +55,7 @@ does it submit to any jurisdiction.
<option fortran="bonne" include="Proj4Projection.h" name="Proj4Bonne"> </option>
<option fortran="google" include="Proj4Projection.h" name="Proj4Google"> </option>
<option fortran="efas" include="Proj4Projection.h" name="Proj4Efas"> </option>
- <option fortran="EPSG4326" include="Proj4Projection.h" name="Proj4EPSG4326"> </option>
<option fortran="lambert_north_atlantic" include="Proj4Projection.h" name="Proj4LambertNorthAtlantic"> </option>
-
<option xml="mercator" fortran="mercator" include="Proj4Projection.h" name="Proj4Mercator"> </option>
<option xml="cartesian" fortran="cartesian" include="CartesianTransformation.h" name="CartesianTransformation"> </option>
<option xml="taylor" fortran="taylor" include="TaylorProjection.h" name="TaylorProjection"> </option>
diff --git a/src/params/HiLoNumber.xml b/src/params/HiLoNumber.xml
index 97c6361..6327553 100644
--- a/src/params/HiLoNumber.xml
+++ b/src/params/HiLoNumber.xml
@@ -3,7 +3,7 @@
<documentation>
This object is reponsible for plotting the HI/Lo as text.
</documentation>
- <parameter xml="format" from="string" name="contour_hilo_format" default="(automatic)" member="format" to="string">
+
<!--
(C) Copyright 1996-2016 ECMWF.
@@ -14,9 +14,6 @@ granted to it by virtue of its status as an intergovernmental organisation nor
does it submit to any jurisdiction.
-->
- <documentation> Format of HILO numbers (MAGICS Format/(AUTOMATIC)) </documentation>
- <release>Magics++0.1 </release>
- <release_info>Parameter defined but not implemented : expected in 0.7 </release_info>
- </parameter>
+
</class></magics>
diff --git a/src/params/HiLoTechnique.xml b/src/params/HiLoTechnique.xml
index da12d29..20b5bd6 100644
--- a/src/params/HiLoTechnique.xml
+++ b/src/params/HiLoTechnique.xml
@@ -31,4 +31,10 @@ does it submit to any jurisdiction.
<documentation> Colour of local minima text or number </documentation>
<release>0.1 </release>
</parameter>
+ <parameter xml="format" from="string" name="contour_hilo_format" default="(automatic)" member="format" to="string">
+ <documentation> Format of HILO numbers (MAGICS Format/(AUTOMATIC)) </documentation>
+ <release>Magics++0.1 </release>
+ <release_info>Parameter defined but not implemented : expected in 0.7 </release_info>
+
+ </parameter>
</class></magics>
diff --git a/src/params/NetcdfDecoder.xml b/src/params/NetcdfDecoder.xml
index 548b463..5af18e7 100644
--- a/src/params/NetcdfDecoder.xml
+++ b/src/params/NetcdfDecoder.xml
@@ -29,8 +29,11 @@ does it submit to any jurisdiction.
<option fortran="xypoint" include="NetcdfGeopointsInterpretor.h" name="NetcdfXYpointsInterpretor"> </option>
<option xml="complex_matrix" fortran="complex_matrix" include="NetcdfOrcaInterpretor.h" name="NetcdfOrcaInterpretor"> </option>
- <release>Magics++0.1 </release>
- <release_info>Only matrix is implemented </release_info>
+
+
<documentation>Type of data arrangement in the file (possible values: matrix) </documentation>
</parameter>
+ <parameter member="metadata" to="string" default="{}" from="string" name="netcdf_metadata">
+ <documentation>Json string containing metadata information: useful to choose a style </documentation>
+ </parameter>
</class></magics>
diff --git a/src/params/SimplePolyline.xml b/src/params/SimplePolyline.xml
index 85e606a..2d7e9f0 100644
--- a/src/params/SimplePolyline.xml
+++ b/src/params/SimplePolyline.xml
@@ -140,7 +140,6 @@ does it submit to any jurisdiction.
<parameter from="string" name="polyline_line_style_variable_name" default="" member="style_key" to="string">
<documentation> Data Variable used for setting the line style of the segments </documentation>
-
</parameter>
<parameter from="stringarray" name="polyline_line_style_list" default="stringarray()" member="style_list" to="stringarray">
<documentation> list of line styles to use </documentation>
diff --git a/src/visualisers/Akima474.cc b/src/visualisers/Akima474.cc
index f90aa18..33e4ea8 100644
--- a/src/visualisers/Akima474.cc
+++ b/src/visualisers/Akima474.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima474.cc
Implementation of Akima474 class.
diff --git a/src/visualisers/Akima474Method.h b/src/visualisers/Akima474Method.h
index 4e454ce..84f3ab8 100644
--- a/src/visualisers/Akima474Method.h
+++ b/src/visualisers/Akima474Method.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima474Method.h
\brief Definition of the Template class Akima474Method.
diff --git a/src/visualisers/Akima760.cc b/src/visualisers/Akima760.cc
index 50bdee4..85ce0f3 100644
--- a/src/visualisers/Akima760.cc
+++ b/src/visualisers/Akima760.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima760.cc
Implementation of Akima760 class.
diff --git a/src/visualisers/Akima760Method.cc b/src/visualisers/Akima760Method.cc
index 5a3eec9..14dc4c0 100644
--- a/src/visualisers/Akima760Method.cc
+++ b/src/visualisers/Akima760Method.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima760Method.cc
\brief Implementation of the Template class Akima760Method.
diff --git a/src/visualisers/Akima760Method.h b/src/visualisers/Akima760Method.h
index e807d23..da01339 100644
--- a/src/visualisers/Akima760Method.h
+++ b/src/visualisers/Akima760Method.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima760Method.h
\brief Definition of the Template class Akima760Method.
diff --git a/src/visualisers/Akima761.cc b/src/visualisers/Akima761.cc
index a500b4d..81efa64 100644
--- a/src/visualisers/Akima761.cc
+++ b/src/visualisers/Akima761.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima761.cc
Implementation of Akima761 class.
diff --git a/src/visualisers/Akima761Method.cc b/src/visualisers/Akima761Method.cc
index 5528efc..38c0154 100644
--- a/src/visualisers/Akima761Method.cc
+++ b/src/visualisers/Akima761Method.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima761Method.cc
\brief Implementation of the Template class Akima761Method.
diff --git a/src/visualisers/Akima761Method.h b/src/visualisers/Akima761Method.h
index 6223b6d..f24c420 100644
--- a/src/visualisers/Akima761Method.h
+++ b/src/visualisers/Akima761Method.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Akima761Method.h
\brief Definition of the Template class Akima761Method.
diff --git a/src/visualisers/ArrowPlotting.cc b/src/visualisers/ArrowPlotting.cc
index f490a6e..abb0205 100644
--- a/src/visualisers/ArrowPlotting.cc
+++ b/src/visualisers/ArrowPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file WindPlotting.cc
\brief Implementation of the Template class Wind.
diff --git a/src/visualisers/ArrowPlotting.h b/src/visualisers/ArrowPlotting.h
index 8472742..5dd5201 100644
--- a/src/visualisers/ArrowPlotting.h
+++ b/src/visualisers/ArrowPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ArrowPlotting.h
\brief Definition of the Template class ArrowPlotting.
diff --git a/src/visualisers/AutomaticContourMethod.h b/src/visualisers/AutomaticContourMethod.h
index d84cf22..09a94e6 100644
--- a/src/visualisers/AutomaticContourMethod.h
+++ b/src/visualisers/AutomaticContourMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AutomaticContourMethod.h
\brief Definition of the Template class AutomaticContourMethod.
diff --git a/src/visualisers/Axis.cc b/src/visualisers/Axis.cc
index 0b6fa86..9514be0 100644
--- a/src/visualisers/Axis.cc
+++ b/src/visualisers/Axis.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Axis.cc
\brief Implementation of the Template class Axis.
@@ -370,7 +362,7 @@ void VerticalAxis::label(VerticalAxisVisitor& axis)
if ( count % label_frequency_ ) continue;
- double height = ((*y)->height() == DBL_MIN || (*y)->height() == 0 ) ? label_height_ : (*y)->height();
+ double height = ((*y)->height() == DBL_MIN || (*y)->height() == 0 ) ? label_height_ : (*y)->height();
double pos;
map<int, double>::iterator p = positions.find((*y)->level());
@@ -383,7 +375,7 @@ void VerticalAxis::label(VerticalAxisVisitor& axis)
double newpos = axis.offsetTickLabel(height, p->second);
positions[(*y)->level()] = newpos;
- title_position_ = newpos;
+ title_position_ = axis.offsetTickLabel(height * label.size()/2, p->second);;
}
PaperPoint point(pos, transformation.y((*y)->position()));
diff --git a/src/visualisers/Axis.h b/src/visualisers/Axis.h
index 032f664..25580bd 100644
--- a/src/visualisers/Axis.h
+++ b/src/visualisers/Axis.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Axis.h
\brief Definition of the Template class Axis.
diff --git a/src/visualisers/AxisControl.cc b/src/visualisers/AxisControl.cc
index cd9fd1a..a7fb1cb 100644
--- a/src/visualisers/AxisControl.cc
+++ b/src/visualisers/AxisControl.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisControl.cc
\brief Implementation of the Template class AxisControl.
diff --git a/src/visualisers/AxisControl.h b/src/visualisers/AxisControl.h
index bcb16e7..13852b5 100644
--- a/src/visualisers/AxisControl.h
+++ b/src/visualisers/AxisControl.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisControl.h
\brief Definition of the Template class AxisControl.
diff --git a/src/visualisers/AxisGrid.cc b/src/visualisers/AxisGrid.cc
index 82b7e8a..eb21cd7 100644
--- a/src/visualisers/AxisGrid.cc
+++ b/src/visualisers/AxisGrid.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisGrid.cc
\brief Implementation of the Template class AxisGrid.
diff --git a/src/visualisers/AxisGrid.h b/src/visualisers/AxisGrid.h
index 375df68..db108b0 100644
--- a/src/visualisers/AxisGrid.h
+++ b/src/visualisers/AxisGrid.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisGrid.h
\brief Definition of the Template class AxisGrid.
diff --git a/src/visualisers/AxisItem.cc b/src/visualisers/AxisItem.cc
index 9014ec1..be5b4d6 100644
--- a/src/visualisers/AxisItem.cc
+++ b/src/visualisers/AxisItem.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisItem.cc
\brief Implementation of the Template class AxisItem.
diff --git a/src/visualisers/AxisItem.h b/src/visualisers/AxisItem.h
index c7f8626..daccc9f 100644
--- a/src/visualisers/AxisItem.h
+++ b/src/visualisers/AxisItem.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisItem.h
\brief Definition of the Template class AxisItem.
diff --git a/src/visualisers/AxisLine.cc b/src/visualisers/AxisLine.cc
index e93ff43..12e6f0b 100644
--- a/src/visualisers/AxisLine.cc
+++ b/src/visualisers/AxisLine.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisLine.cc
\brief Implementation of the Template class AxisLine.
diff --git a/src/visualisers/AxisLine.h b/src/visualisers/AxisLine.h
index 578c078..e62678b 100644
--- a/src/visualisers/AxisLine.h
+++ b/src/visualisers/AxisLine.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisLine.h
\brief Definition of the Template class AxisLine.
diff --git a/src/visualisers/AxisMethod.cc b/src/visualisers/AxisMethod.cc
index d4cf3f1..0a1480e 100644
--- a/src/visualisers/AxisMethod.cc
+++ b/src/visualisers/AxisMethod.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisMethod.cc
\brief Implementation of the Template class AxisMethod.
diff --git a/src/visualisers/AxisMethod.h b/src/visualisers/AxisMethod.h
index ce1d794..40edda8 100644
--- a/src/visualisers/AxisMethod.h
+++ b/src/visualisers/AxisMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisMethod.h
\brief Definition of the Template class AxisMethod.
diff --git a/src/visualisers/AxisMinorTick.cc b/src/visualisers/AxisMinorTick.cc
index 7618f2f..43c652a 100644
--- a/src/visualisers/AxisMinorTick.cc
+++ b/src/visualisers/AxisMinorTick.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisMinorTick.cc
\brief Implementation of the Template class AxisMinorTick.
diff --git a/src/visualisers/AxisMinorTick.h b/src/visualisers/AxisMinorTick.h
index ea5825f..cbe157f 100644
--- a/src/visualisers/AxisMinorTick.h
+++ b/src/visualisers/AxisMinorTick.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisMinorTick.h
\brief Definition of the Template class AxisMinorTick.
diff --git a/src/visualisers/AxisTick.cc b/src/visualisers/AxisTick.cc
index 9edba03..7ba08c6 100644
--- a/src/visualisers/AxisTick.cc
+++ b/src/visualisers/AxisTick.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisTick.cc
\brief Implementation of the Template class AxisTick.
diff --git a/src/visualisers/AxisTick.h b/src/visualisers/AxisTick.h
index 675b311..1e1eab1 100644
--- a/src/visualisers/AxisTick.h
+++ b/src/visualisers/AxisTick.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisTick.h
\brief Definition of the Template class AxisTick.
diff --git a/src/visualisers/AxisTickLabelType.cc b/src/visualisers/AxisTickLabelType.cc
index c82ec11..bc480f8 100644
--- a/src/visualisers/AxisTickLabelType.cc
+++ b/src/visualisers/AxisTickLabelType.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisTickLabelType.cc
\brief Implementation of the Template class AxisTickLabelType.
diff --git a/src/visualisers/AxisTickLabelType.h b/src/visualisers/AxisTickLabelType.h
index b98323d..c1d1b64 100644
--- a/src/visualisers/AxisTickLabelType.h
+++ b/src/visualisers/AxisTickLabelType.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisTickLabelType.h
\brief Definition of the Template class AxisTickLabel.
diff --git a/src/visualisers/AxisType.cc b/src/visualisers/AxisType.cc
index 898aadc..fc69ebe 100644
--- a/src/visualisers/AxisType.cc
+++ b/src/visualisers/AxisType.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisType.cc
\brief Implementation of the Template class AxisType.
diff --git a/src/visualisers/AxisType.h b/src/visualisers/AxisType.h
index 5f98e6a..c3ea92b 100644
--- a/src/visualisers/AxisType.h
+++ b/src/visualisers/AxisType.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file AxisType.h
\brief Definition of the Template class AxisType.
diff --git a/src/visualisers/Bar.cc b/src/visualisers/Bar.cc
index c69d623..faf6374 100644
--- a/src/visualisers/Bar.cc
+++ b/src/visualisers/Bar.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Bar.cc
\brief Implementation of the Template class Bar.
diff --git a/src/visualisers/Bar.h b/src/visualisers/Bar.h
index 33818f8..bf28475 100644
--- a/src/visualisers/Bar.h
+++ b/src/visualisers/Bar.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Bar.h
\brief Definition of the Template class Bar.
diff --git a/src/visualisers/BothValuePlotMethod.h b/src/visualisers/BothValuePlotMethod.h
index 2517be8..4062bbd 100644
--- a/src/visualisers/BothValuePlotMethod.h
+++ b/src/visualisers/BothValuePlotMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BothValuePlotMethod.h
\brief Definition of the Template class BothValuePlotMethod.
diff --git a/src/visualisers/Boundaries.cc b/src/visualisers/Boundaries.cc
index fb12688..bdec2d9 100644
--- a/src/visualisers/Boundaries.cc
+++ b/src/visualisers/Boundaries.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Boundaries.cc
\brief Implementation of the Template class BoundariesBase.
diff --git a/src/visualisers/Boundaries.h b/src/visualisers/Boundaries.h
index 9f97f9f..88f8506 100644
--- a/src/visualisers/Boundaries.h
+++ b/src/visualisers/Boundaries.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Boundaries.h
\brief Definition of the Template class NoBoundaries.
diff --git a/src/visualisers/BoxPlotBasicItem.h b/src/visualisers/BoxPlotBasicItem.h
index 55287b5..f0d25cf 100644
--- a/src/visualisers/BoxPlotBasicItem.h
+++ b/src/visualisers/BoxPlotBasicItem.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BoxPlotBasicItem.h
\brief Definition of the Template class BoxPlotBasicItem.
diff --git a/src/visualisers/BoxPlotItem.cc b/src/visualisers/BoxPlotItem.cc
index 1532bca..eae3cd7 100644
--- a/src/visualisers/BoxPlotItem.cc
+++ b/src/visualisers/BoxPlotItem.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BoxPlotItem.cc
\brief Implementation of the Template class BoxPlotBox.
diff --git a/src/visualisers/BoxPlotItem.h b/src/visualisers/BoxPlotItem.h
index c79330f..6b46f0d 100644
--- a/src/visualisers/BoxPlotItem.h
+++ b/src/visualisers/BoxPlotItem.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BoxPlotItem.h
\brief Definition of the Template class BoxPlotItem.
diff --git a/src/visualisers/BoxPlotVisualiser.cc b/src/visualisers/BoxPlotVisualiser.cc
index 2eba1da..361c1d6 100644
--- a/src/visualisers/BoxPlotVisualiser.cc
+++ b/src/visualisers/BoxPlotVisualiser.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BoxPlotVisualiser.cc
\brief Implementation of the Template class BoxPlotVisualiser.
diff --git a/src/visualisers/BoxPlotVisualiser.h b/src/visualisers/BoxPlotVisualiser.h
index 8b92e0d..aa32b87 100644
--- a/src/visualisers/BoxPlotVisualiser.h
+++ b/src/visualisers/BoxPlotVisualiser.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BoxPlotVisualiser.h
\brief Definition of the Template class BoxPlotVisualiser.
diff --git a/src/visualisers/CalculateColourTechnique.cc b/src/visualisers/CalculateColourTechnique.cc
index 2674cb7..c1de945 100644
--- a/src/visualisers/CalculateColourTechnique.cc
+++ b/src/visualisers/CalculateColourTechnique.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CalculateColourTechnique.cc
\brief Implementation of the Template class CalculateColourTechnique.
diff --git a/src/visualisers/CalculateColourTechnique.h b/src/visualisers/CalculateColourTechnique.h
index 361a92b..2ff53bc 100644
--- a/src/visualisers/CalculateColourTechnique.h
+++ b/src/visualisers/CalculateColourTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CalculateColourTechnique.h
\brief Definition of the Template class CalculateColourTechnique.
diff --git a/src/visualisers/CalmIndicator.h b/src/visualisers/CalmIndicator.h
index 801dd89..8abcca8 100644
--- a/src/visualisers/CalmIndicator.h
+++ b/src/visualisers/CalmIndicator.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CalmIndicator.h
\brief Definition of the Template class CalmIndicator.
diff --git a/src/visualisers/CellShading.cc b/src/visualisers/CellShading.cc
index 8e899a4..1ff9c5c 100644
--- a/src/visualisers/CellShading.cc
+++ b/src/visualisers/CellShading.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CellShading.cc
\brief Implementation of the Template class CellShading.
diff --git a/src/visualisers/CellShading.h b/src/visualisers/CellShading.h
index 28d8901..bdca80b 100644
--- a/src/visualisers/CellShading.h
+++ b/src/visualisers/CellShading.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CellShading.h
\brief Definition of the Template class CellShading.
diff --git a/src/visualisers/Cities.cc b/src/visualisers/Cities.cc
index f2851bb..24d712a 100644
--- a/src/visualisers/Cities.cc
+++ b/src/visualisers/Cities.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Cities.cc
\brief Implementation of the Template class CitiesBase.
diff --git a/src/visualisers/Cities.h b/src/visualisers/Cities.h
index 24e9c2b..54502a7 100644
--- a/src/visualisers/Cities.h
+++ b/src/visualisers/Cities.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Cities.h
\brief Definition of the Template class NoCities.
diff --git a/src/visualisers/CoastPlotting.cc b/src/visualisers/CoastPlotting.cc
index 5c97d6e..35d8f3b 100644
--- a/src/visualisers/CoastPlotting.cc
+++ b/src/visualisers/CoastPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CoastPlotting.cc
\brief Implementation of the Template class CoastPlotting.
diff --git a/src/visualisers/CoastPlotting.h b/src/visualisers/CoastPlotting.h
index 1c9de7f..17c4ea5 100644
--- a/src/visualisers/CoastPlotting.h
+++ b/src/visualisers/CoastPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CoastPlotting.h
\brief Definition of the Template class CoastPlotting.
diff --git a/src/visualisers/Coastlines.cc b/src/visualisers/Coastlines.cc
index 0557f7c..9f8dee4 100644
--- a/src/visualisers/Coastlines.cc
+++ b/src/visualisers/Coastlines.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Coastlines.cc
\brief Implementation of the Template class Coastlines.
diff --git a/src/visualisers/Coastlines.h b/src/visualisers/Coastlines.h
index 2b844cc..cfc982c 100644
--- a/src/visualisers/Coastlines.h
+++ b/src/visualisers/Coastlines.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Coastlines.h
\brief Definition of the Template class Coastlines.
diff --git a/src/visualisers/ColourSelection.cc b/src/visualisers/ColourSelection.cc
index 398cbb6..937efb8 100644
--- a/src/visualisers/ColourSelection.cc
+++ b/src/visualisers/ColourSelection.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourSelection.cc
\brief Implementation of the Template class ColourSelection.
diff --git a/src/visualisers/ColourSelection.h b/src/visualisers/ColourSelection.h
index c218644..fc1c808 100644
--- a/src/visualisers/ColourSelection.h
+++ b/src/visualisers/ColourSelection.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourSelection.h
\brief Definition of the Template class ColourSelection.
diff --git a/src/visualisers/ColourSelectionCount.cc b/src/visualisers/ColourSelectionCount.cc
index c2e79cd..5aeef3a 100644
--- a/src/visualisers/ColourSelectionCount.cc
+++ b/src/visualisers/ColourSelectionCount.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourSelectionCount.cc
\brief Implementation of the Template class ColourSelectionCount.
diff --git a/src/visualisers/ColourSelectionCount.h b/src/visualisers/ColourSelectionCount.h
index 5f3b244..474dab4 100644
--- a/src/visualisers/ColourSelectionCount.h
+++ b/src/visualisers/ColourSelectionCount.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourSelectionCount.h
\brief Definition of the Template class ColourSelectionCount.
diff --git a/src/visualisers/ColourSelectionList.cc b/src/visualisers/ColourSelectionList.cc
index fee682d..fb40a48 100644
--- a/src/visualisers/ColourSelectionList.cc
+++ b/src/visualisers/ColourSelectionList.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourSelectionList.cc
\brief Implementation of the Template class ColourSelectionList.
diff --git a/src/visualisers/ColourSelectionList.h b/src/visualisers/ColourSelectionList.h
index 8dcb65f..85b584d 100644
--- a/src/visualisers/ColourSelectionList.h
+++ b/src/visualisers/ColourSelectionList.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourSelectionList.h
\brief Definition of the Template class ColourSelectionList.
diff --git a/src/visualisers/ColourTechnique.cc b/src/visualisers/ColourTechnique.cc
index b340e5c..ff57140 100644
--- a/src/visualisers/ColourTechnique.cc
+++ b/src/visualisers/ColourTechnique.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTechnique.cc
\brief Implementation of the Template class ColourTechnique.
diff --git a/src/visualisers/ColourTechnique.h b/src/visualisers/ColourTechnique.h
index ddaa93c..1cd3b82 100644
--- a/src/visualisers/ColourTechnique.h
+++ b/src/visualisers/ColourTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ColourTechnique.h
\brief Definition of the Template class ColourTechnique.
diff --git a/src/visualisers/Contour.cc b/src/visualisers/Contour.cc
index 43e3b60..917c7e3 100644
--- a/src/visualisers/Contour.cc
+++ b/src/visualisers/Contour.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Contour.cc
\brief Implementation of the Template class Contour.
@@ -33,6 +25,7 @@
#include "Text.h"
#include "ContourLibrary.h"
#include "HistoVisitor.h"
+#include "Timer.h"
using namespace magics;
@@ -128,8 +121,25 @@ void Contour::operator()(Data& data, BasicGraphicsObjectContainer& parent)
if (this->floor_ != -INT_MAX || this->ceiling_ != INT_MAX)
matrix_ = new MatrixTreshold(*matrix_, this->floor_, this->ceiling_);
- (*this->contour_).adjust(matrix_->min(), matrix_->max());
- (*this->contour_)(*matrix_, parent);
+ {
+ Timer timer("setMinMax", "setMainMax");
+ double min, max;
+ {
+ Timer timer("Max", "Max");
+ min = matrix_->min();
+
+ }
+ {
+ Timer timer("MIN", "MIN");
+ max = matrix_->max();
+ }
+ (*this->contour_).adjust(min, max);
+
+ }
+ {
+ Timer timer("CONTOUR", "CONTOUR");
+ (*this->contour_)(*matrix_, parent);
+ }
(*this->contour_)(data, parent);
if ( magCompare( this->grid_->getType(), "akima" ) )
(*this->grid_)(*matrix_, parent);
diff --git a/src/visualisers/Contour.h b/src/visualisers/Contour.h
index 8e71906..2327b75 100644
--- a/src/visualisers/Contour.h
+++ b/src/visualisers/Contour.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Contour.h
\brief Definition of the Template class Contour.
diff --git a/src/visualisers/ContourMethod.h b/src/visualisers/ContourMethod.h
index a22bdb9..4e8353e 100644
--- a/src/visualisers/ContourMethod.h
+++ b/src/visualisers/ContourMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ContourMethod.h
\brief Definition of the Template class ContourMethod.
diff --git a/src/visualisers/CountSelectionType.cc b/src/visualisers/CountSelectionType.cc
index 0ebc193..f4734ac 100644
--- a/src/visualisers/CountSelectionType.cc
+++ b/src/visualisers/CountSelectionType.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file
.cc
diff --git a/src/visualisers/CountSelectionType.h b/src/visualisers/CountSelectionType.h
index 3b649ba..ec23039 100644
--- a/src/visualisers/CountSelectionType.h
+++ b/src/visualisers/CountSelectionType.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file CountSelectionType.h
\brief Definition of the Template class CountSelectionType.
diff --git a/src/visualisers/Curve.cc b/src/visualisers/Curve.cc
index c05206b..a8a798c 100644
--- a/src/visualisers/Curve.cc
+++ b/src/visualisers/Curve.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Curve.cc
\brief Implementation of the Template class Curve.
@@ -36,6 +28,24 @@
using namespace magics;
+
+template <class T, class O>
+void setHandler(const vector<string>& keys, vector<T>& values, ListPolicy policy, const T& def, map<string, O>& handler)
+{
+ if (values.empty())
+ values.push_back(def);
+
+ typename vector<T>::const_iterator value = values.begin();
+ MagTranslator<T, O> translator;
+ for (vector<string>::const_iterator key = keys.begin(); key != keys.end(); ++key) {
+
+ handler.insert(make_pair(*key, translator(*value)));
+ value++;
+ if ( value == values.end() )
+ value = ( policy == M_CYCLE ) ? values.begin() : --value;
+ }
+}
+
Curve::Curve()
{
missingMethods_["ignore"] = &Curve::ignore;
@@ -44,7 +54,9 @@ Curve::Curve()
curveMethods_["straight"] = &Curve::straight;
curveMethods_["stepped"] = &Curve::stepped;
+
+
}
@@ -64,9 +76,12 @@ Polyline* Curve::newCurve(BasicGraphicsObjectContainer& task) const
{
Polyline* curve = new Polyline();
- (*curve).setColour(*colour_);
- (*curve).setLineStyle(style_);
- (*curve).setThickness(thickness_);
+
+
+ (*curve).setColour(currentColour_);
+ (*curve).setLineStyle(currentStyle_);
+ (*curve).setThickness(currentThickness_);
+
return curve;
@@ -97,6 +112,17 @@ void Curve::stepped(const UserPoint& point, vector<UserPoint>& out)
}
+template <class T>
+const T& get(const map<string, T>& handler, const string& key, const T& def)
+{
+
+ typename std::map<string, T>::const_iterator value = handler.find(key);
+ if ( value == handler.end() )
+ return def;
+ return value->second;
+
+}
+
void Curve::operator()(Data& data, BasicGraphicsObjectContainer& task)
{
@@ -106,13 +132,42 @@ void Curve::operator()(Data& data, BasicGraphicsObjectContainer& task)
std::set<string> needs;
+ std::map<string, string> info;
+
+ currentColour_ = *colour_;
+ currentThickness_ = thickness_;
+ currentStyle_ = style_;
+
+ if ( magCompare(style_setting_, "advanced") ) {
+ string style = "solid";
+ setHandler(colour_keys_, colour_list_, colour_policy_, colour_->name(), colourHandler_);
+ setHandler(thickness_keys_, thickness_list_, thickness_policy_, thickness_, thicknessHandler_);
+ setHandler(style_keys_, style_list_, style_policy_, style, styleHandler_);
+
+ info.insert(make_pair(style_key_, ""));
+ info.insert(make_pair(colour_key_, ""));
+ info.insert(make_pair(thickness_key_, ""));
+ data.getInfo(info);
+
+ string colour = get(colourHandler_, info[colour_key_], currentColour_.name());
+ currentColour_ = Colour(colour);
+ currentThickness_ = get(thicknessHandler_, info[thickness_key_], currentThickness_);
+ currentStyle_ = get(styleHandler_, info[style_key_], currentStyle_);
+ }
+
+
+
+
+
+
+
+
CustomisedPointsList raw, points;
data.customisedPoints(transformation, needs, points, true);
if ( legend_text_ == "?" ) legend_text_ = data.legend();
-
Polyline* curve_ = newCurve(task);
bool last_out = false;
@@ -223,7 +278,10 @@ void CurveArea::operator()(Data& data, BasicGraphicsObjectContainer& task)
vector<double> ypos;
const Transformation& transformation = task.transformation();
-
+ currentColour_ = *colour_;
+ currentThickness_ = thickness_;
+ currentStyle_ = style_;
+
std::set<string> needs;
CustomisedPointsList points;
if ( shade_->needCustomised() ) {
@@ -329,9 +387,9 @@ void Curve::visit(LegendVisitor& legend)
void Curve::set(const PaperPoint& point, BasicGraphicsObjectContainer& legend, LegendEntry& entry)
{
Polyline* curve = new Polyline();
- curve->setColour(*colour_);
- curve->setLineStyle(style_);
- curve->setThickness(thickness_);
+ curve->setColour(currentColour_);
+ curve->setLineStyle(currentStyle_);
+ curve->setThickness(currentThickness_);
double width = entry.computeWidth(0.8)/2;
@@ -383,7 +441,6 @@ void Curve::legend_symbol(PaperPoint& point, BasicGraphicsObjectContainer& task)
if ( !symbol_ ) return;
Symbol* symbol = new Symbol();
-
symbol->setMarker(symbol_marker_);
symbol->setHeight(symbol_height_);
symbol->setColour(*symbol_colour_);
diff --git a/src/visualisers/Curve.h b/src/visualisers/Curve.h
index 2f45959..266278c 100644
--- a/src/visualisers/Curve.h
+++ b/src/visualisers/Curve.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Curve.h
\brief Definition of the Template class Curve.
@@ -81,6 +73,15 @@ protected:
bool missing(CustomisedPoint&) const;
std::map<string, MissingMethod> missingMethods_;
std::map<string, CurveMethod> curveMethods_;
+
+ std::map<string, int> thicknessHandler_;
+ std::map<string, LineStyle> styleHandler_;
+ std::map<string, string> colourHandler_;
+
+ Colour currentColour_;
+ LineStyle currentStyle_;
+ int currentThickness_;
+
private:
//! Copy constructor - No copy allowed
Curve(const Curve&);
diff --git a/src/visualisers/DateAxis.cc b/src/visualisers/DateAxis.cc
index 5b908ac..821caed 100644
--- a/src/visualisers/DateAxis.cc
+++ b/src/visualisers/DateAxis.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file DateAxisMethod.cc
\brief Implementation of the Template class DateAxisMethod.
diff --git a/src/visualisers/DateAxis.h b/src/visualisers/DateAxis.h
index 0cdd226..35b3f1a 100644
--- a/src/visualisers/DateAxis.h
+++ b/src/visualisers/DateAxis.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file DateAxisMethod.h
\brief Definition of the Template class DateAxisMethod.
diff --git a/src/visualisers/DefinitionTable.h b/src/visualisers/DefinitionTable.h
index 516161d..9183885 100644
--- a/src/visualisers/DefinitionTable.h
+++ b/src/visualisers/DefinitionTable.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef DefinitionTable_H
#define DefinitionTable_H
diff --git a/src/visualisers/DefinitionTable.hcc b/src/visualisers/DefinitionTable.hcc
index 3087c1f..844a276 100644
--- a/src/visualisers/DefinitionTable.hcc
+++ b/src/visualisers/DefinitionTable.hcc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LocalTable.cc
\brief Implementation of the Template class LocalTable.
diff --git a/src/visualisers/DotPolyShadingMethod.h b/src/visualisers/DotPolyShadingMethod.h
index 5d96302..5ac45b9 100644
--- a/src/visualisers/DotPolyShadingMethod.h
+++ b/src/visualisers/DotPolyShadingMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file DotPolyShadingMethod.h
\brief Definition of the Template class DotPolyShadingMethod.
diff --git a/src/visualisers/EpsForecastPlot.h b/src/visualisers/EpsForecastPlot.h
index b73b5d7..6e552fe 100644
--- a/src/visualisers/EpsForecastPlot.h
+++ b/src/visualisers/EpsForecastPlot.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file EpsForecastPlot.h
\brief Definition of the Template class EpsForecastPlot.
diff --git a/src/visualisers/EpsGraph.cc b/src/visualisers/EpsGraph.cc
index 7088769..23e4610 100644
--- a/src/visualisers/EpsGraph.cc
+++ b/src/visualisers/EpsGraph.cc
@@ -1,21 +1,12 @@
-
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHvisitor WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file EpsGraph.cc
\brief Implementation of the Template class EpsGraph.
@@ -796,17 +787,34 @@ void EpsGraph::operator()(Data& data, BasicGraphicsObjectContainer& visitor)
eps75 = eps[3];
epsmax = eps[4];
}
+ // Prepare the colors :
+ int size = quantiles_colour_.size();
+ Colour colour10_25 = ( size >= 1 ) ? Colour(quantiles_colour_[0]) : colour;
+ Colour colour25_75 = ( size >= 2 ) ? Colour(quantiles_colour_[1]) : colour;
+ Colour colour75_90 = ( size >= 3 ) ? Colour(quantiles_colour_[2]) : colour10_25;
+
+ Polyline* box10_25 = new Polyline();
+ box10_25->setColour(*border_colour_);
+ box10_25->setThickness(border_thickness_);
+ box10_25->setFilled(true);
+ box10_25->setFillColour(colour10_25);
+ box10_25->setShading(new FillShadingProperties());
+
+ Polyline* box25_75 = new Polyline();
+ box25_75->setColour(*border_colour_);
+ box25_75->setThickness(border_thickness_);
+ box25_75->setFilled(true);
+ box25_75->setFillColour(colour25_75);
+ box25_75->setShading(new FillShadingProperties());
+
+ Polyline* box75_90 = new Polyline();
+ box75_90->setColour(*border_colour_);
+ box75_90->setThickness(border_thickness_);
+ box75_90->setFilled(true);
+ box75_90->setFillColour(colour75_90);
+ box75_90->setShading(new FillShadingProperties());
- Polyline* box = new Polyline();
- box->setColour(*border_colour_);
- box->setThickness(border_thickness_);
- box->setColour(*border_colour_);
- box->setFilled(true);
- box->setThickness(border_thickness_);
- box->setFillColour(colour);
- box->setShading(new FillShadingProperties());
-
Polyline* median = new Polyline();
median->setColour(*median_colour_);
@@ -818,35 +826,35 @@ void EpsGraph::operator()(Data& data, BasicGraphicsObjectContainer& visitor)
bar2->setColour(*border_colour_);
bar2->setThickness(border_thickness_);
- box->push_back(PaperPoint(x-width, eps50));
- box->push_back(PaperPoint(x-width, eps75));
+ box25_75->push_back(PaperPoint(x-width, eps50));
+ box25_75->push_back(PaperPoint(x-width, eps75));
if ( ninty != (*point)->end() ) {
fullEps_ = true;
if ( eps75 != eps90 ) {
- box->push_back(PaperPoint(x-(width/2), eps75));
- box->push_back(PaperPoint(x-(width/2), eps90) );
- box->push_back(PaperPoint(x+(width/2), eps90));
- box->push_back(PaperPoint(x+(width/2), eps75));
+ box75_90->push_back(PaperPoint(x-(width/2), eps75));
+ box75_90->push_back(PaperPoint(x-(width/2), eps90) );
+ box75_90->push_back(PaperPoint(x+(width/2), eps90));
+ box75_90->push_back(PaperPoint(x+(width/2), eps75));
}
}
if ( eps75 != eps25 ) {
- box->push_back(PaperPoint(x+width, eps75));
- box->push_back(PaperPoint(x+width, eps25));
+ box25_75->push_back(PaperPoint(x+width, eps75));
+ box25_75->push_back(PaperPoint(x+width, eps25));
}
if ( ten != (*point)->end() ) {
if ( eps25 != eps10 ) {
- box->push_back(PaperPoint(x+(width/2), eps25));
- box->push_back(PaperPoint(x+(width/2),eps10));
- box->push_back(PaperPoint(x-(width/2), eps10));
- box->push_back(PaperPoint(x-(width/2), eps25));
+ box10_25->push_back(PaperPoint(x+(width/2), eps25));
+ box10_25->push_back(PaperPoint(x+(width/2),eps10));
+ box10_25->push_back(PaperPoint(x-(width/2), eps10));
+ box10_25->push_back(PaperPoint(x-(width/2), eps25));
}
}
if ( eps25 != eps50 ) {
- box->push_back(PaperPoint(x-width, eps25));
- box->push_back(PaperPoint(x-width, eps50));
+ box25_75->push_back(PaperPoint(x-width, eps25));
+ box25_75->push_back(PaperPoint(x-width, eps50));
}
bar1->push_back(PaperPoint(x+width, eps25));
bar1->push_back(PaperPoint(x-width, eps25));
@@ -879,7 +887,9 @@ void EpsGraph::operator()(Data& data, BasicGraphicsObjectContainer& visitor)
(*bottom).push_back(PaperPoint(x, eps25));
if (whisker_) {
- transformation(*box, visitor);
+ transformation(*box10_25, visitor);
+ transformation(*box25_75, visitor);
+ transformation(*box75_90, visitor);
transformation(*top, visitor);
transformation(*bottom, visitor);
transformation(*median, visitor);
diff --git a/src/visualisers/EpsGraph.h b/src/visualisers/EpsGraph.h
index 3c77f78..5860774 100644
--- a/src/visualisers/EpsGraph.h
+++ b/src/visualisers/EpsGraph.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file EpsGraph.h
\brief Definition of the Template class EpsGraph.
diff --git a/src/visualisers/EquidistantTableMode.cc b/src/visualisers/EquidistantTableMode.cc
index 57f6aff..133aa3d 100644
--- a/src/visualisers/EquidistantTableMode.cc
+++ b/src/visualisers/EquidistantTableMode.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file EquidistantTableMode.cc
\brief Implementation of the Template class EquidistantTableMode.
diff --git a/src/visualisers/EquidistantTableMode.h b/src/visualisers/EquidistantTableMode.h
index 062912b..80b5cd4 100644
--- a/src/visualisers/EquidistantTableMode.h
+++ b/src/visualisers/EquidistantTableMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file EquidistantTableMode.h
\brief Definition of the Template class EquidistantTableMode.
diff --git a/src/visualisers/Filter.cc b/src/visualisers/Filter.cc
index 2ea8545..2163fa1 100644
--- a/src/visualisers/Filter.cc
+++ b/src/visualisers/Filter.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Filter.cc
Implementation of Filter class.
diff --git a/src/visualisers/Filter.h b/src/visualisers/Filter.h
index 588bf53..706e1c1 100644
--- a/src/visualisers/Filter.h
+++ b/src/visualisers/Filter.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Filter.h
\brief Definition of the Template class Filter.
diff --git a/src/visualisers/FlagPlotting.cc b/src/visualisers/FlagPlotting.cc
index d16dd04..2eaef19 100644
--- a/src/visualisers/FlagPlotting.cc
+++ b/src/visualisers/FlagPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file WindPlotting.cc
\brief Implementation of the Template class Wind.
diff --git a/src/visualisers/FlagPlotting.h b/src/visualisers/FlagPlotting.h
index d8c59a6..59b63d5 100644
--- a/src/visualisers/FlagPlotting.h
+++ b/src/visualisers/FlagPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file FlagPlotting.h
\brief Definition of the Template class FlagPlotting.
diff --git a/src/visualisers/FloatSelection.cc b/src/visualisers/FloatSelection.cc
index cf96072..c58a020 100644
--- a/src/visualisers/FloatSelection.cc
+++ b/src/visualisers/FloatSelection.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file FloatSelection.cc
\brief Implementation of the Template class FloatSelection.
diff --git a/src/visualisers/FloatSelection.h b/src/visualisers/FloatSelection.h
index 38ca374..93f1844 100644
--- a/src/visualisers/FloatSelection.h
+++ b/src/visualisers/FloatSelection.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file FloatSelection.h
\brief Definition of the Template class FloatSelection.
diff --git a/src/visualisers/Graph.h b/src/visualisers/Graph.h
index bbe95f4..8a264a6 100644
--- a/src/visualisers/Graph.h
+++ b/src/visualisers/Graph.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Graph.h
\brief Definition of the Template class Graph.
diff --git a/src/visualisers/GraphPlotting.cc b/src/visualisers/GraphPlotting.cc
index b5c145e..ba7c0b8 100644
--- a/src/visualisers/GraphPlotting.cc
+++ b/src/visualisers/GraphPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GraphPlotting.cc
\brief Implementation of the Template class GraphPlotting.
diff --git a/src/visualisers/GraphPlotting.h b/src/visualisers/GraphPlotting.h
index a1362a7..633fee7 100644
--- a/src/visualisers/GraphPlotting.h
+++ b/src/visualisers/GraphPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GraphPlotting.h
\brief Definition of the Template class GraphPlotting.
diff --git a/src/visualisers/GraphShade.cc b/src/visualisers/GraphShade.cc
index 008211c..36b4e8d 100644
--- a/src/visualisers/GraphShade.cc
+++ b/src/visualisers/GraphShade.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GraphShade.cc
\brief Implementation of the Template class GraphShade.
diff --git a/src/visualisers/GraphShade.h b/src/visualisers/GraphShade.h
index 5f7c415..8aac6d0 100644
--- a/src/visualisers/GraphShade.h
+++ b/src/visualisers/GraphShade.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GraphShade.h
\brief Definition of the Template class GraphShade.
diff --git a/src/visualisers/GraphShadeStyle.cc b/src/visualisers/GraphShadeStyle.cc
index 107a306..cefe014 100644
--- a/src/visualisers/GraphShadeStyle.cc
+++ b/src/visualisers/GraphShadeStyle.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GraphShadeStyle.cc
\brief Implementation of the Template class GraphShadeStyle.
diff --git a/src/visualisers/GraphShadeStyle.h b/src/visualisers/GraphShadeStyle.h
index 64d5a39..af40d99 100644
--- a/src/visualisers/GraphShadeStyle.h
+++ b/src/visualisers/GraphShadeStyle.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GraphShadeStyle.h
\brief Definition of the Template class GraphShadeStyle.
diff --git a/src/visualisers/GribTables.h b/src/visualisers/GribTables.h
index 5ef29c1..7744976 100644
--- a/src/visualisers/GribTables.h
+++ b/src/visualisers/GribTables.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GribTables.h
\brief Definition of the Template class GribTables.
diff --git a/src/visualisers/GridPlotting.cc b/src/visualisers/GridPlotting.cc
index 9673fee..8c9d8c7 100644
--- a/src/visualisers/GridPlotting.cc
+++ b/src/visualisers/GridPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GridPlotting.cc
\brief Implementation of the Template class GridPlotting.
diff --git a/src/visualisers/GridPlotting.h b/src/visualisers/GridPlotting.h
index 6edd6a8..f12c060 100644
--- a/src/visualisers/GridPlotting.h
+++ b/src/visualisers/GridPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file GridPlotting.h
\brief Definition of the Template class GridPlotting.
diff --git a/src/visualisers/HatchPolyShadingMethod.h b/src/visualisers/HatchPolyShadingMethod.h
index 925660b..3f48fbc 100644
--- a/src/visualisers/HatchPolyShadingMethod.h
+++ b/src/visualisers/HatchPolyShadingMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HatchPolyShadingMethod.h
\brief Definition of the Template class HatchPolyShadingMethod.
diff --git a/src/visualisers/HeightSelection.cc b/src/visualisers/HeightSelection.cc
index 9b50745..acfcf97 100644
--- a/src/visualisers/HeightSelection.cc
+++ b/src/visualisers/HeightSelection.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelection.cc
\brief Implementation of the Template class HeightSelection.
diff --git a/src/visualisers/HeightSelection.h b/src/visualisers/HeightSelection.h
index 58dbd8f..2f1be49 100644
--- a/src/visualisers/HeightSelection.h
+++ b/src/visualisers/HeightSelection.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelection.h
\brief Definition of the Template class HeightSelection.
diff --git a/src/visualisers/HeightSelectionCount.h b/src/visualisers/HeightSelectionCount.h
index 054d66d..7961c2e 100644
--- a/src/visualisers/HeightSelectionCount.h
+++ b/src/visualisers/HeightSelectionCount.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelectionCount.h
\brief Definition of the Template class HeightSelectionCount.
diff --git a/src/visualisers/HeightSelectionList.h b/src/visualisers/HeightSelectionList.h
index ca7d9f6..ee79272 100644
--- a/src/visualisers/HeightSelectionList.h
+++ b/src/visualisers/HeightSelectionList.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelectionList.h
\brief Definition of the Template class HeightSelectionList.
diff --git a/src/visualisers/HeightTechnique.cc b/src/visualisers/HeightTechnique.cc
index 2a2ef24..5e2d035 100644
--- a/src/visualisers/HeightTechnique.cc
+++ b/src/visualisers/HeightTechnique.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelection.cc
\brief Implementation of the Template class HeightSelection.
diff --git a/src/visualisers/HeightTechnique.h b/src/visualisers/HeightTechnique.h
index 29db47f..da71f1a 100644
--- a/src/visualisers/HeightTechnique.h
+++ b/src/visualisers/HeightTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelection.h
\brief Definition of the Template class HeightSelection.
diff --git a/src/visualisers/HiLo.cc b/src/visualisers/HiLo.cc
index 2d779c3..353cc4d 100644
--- a/src/visualisers/HiLo.cc
+++ b/src/visualisers/HiLo.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLo.cc
\brief Implementation of the Template class HiLo.
diff --git a/src/visualisers/HiLo.h b/src/visualisers/HiLo.h
index dd9b81e..f87b676 100644
--- a/src/visualisers/HiLo.h
+++ b/src/visualisers/HiLo.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLo.h
\brief Definition of the Template class HiLo.
diff --git a/src/visualisers/HiLoBase.h b/src/visualisers/HiLoBase.h
index 4715ecc..0e9c98f 100644
--- a/src/visualisers/HiLoBase.h
+++ b/src/visualisers/HiLoBase.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLoBase.h
\brief Definition of the Template class HiLoBase.
diff --git a/src/visualisers/HiLoBoth.h b/src/visualisers/HiLoBoth.h
index 5fa898e..d2b2eee 100644
--- a/src/visualisers/HiLoBoth.h
+++ b/src/visualisers/HiLoBoth.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLoBoth.h
\brief Definition of the Template class HiLoBoth.
@@ -86,18 +78,32 @@ protected:
if (!high_) {
// Create Text List containing the position of the High
high_ = new TextSymbol();
+ high_->position(Symbol::M_ABOVE);
+ MagFont font;
+ font.name("sansserif");
+ font.colour(*hi_colour_);
+ font.size(contour_hilo_height_);
+ high_->font(font);
high_->setMarker(index_);
- high_->setColour(*colour_);
+ high_->setColour(*colour_); // Colour of the symbol
high_->setHeight(height_);
+ high_->blanking(blanking_);
hilo.push_back(high_);
}
if (!low_) {
// Create Text List containing the position of the High
low_ = new TextSymbol();
+ low_->position(Symbol::M_ABOVE);
low_->setMarker(index_);
- low_->setColour(*colour_);
+ MagFont font;
+ font.name("sansserif");
+ font.colour(*lo_colour_);
+ font.size(contour_hilo_height_);
+ low_->font(font);
+ low_->setColour(*colour_); // Colour of the symbol
low_->setHeight(height_);
+ low_->blanking(blanking_);
hilo.push_back(low_);
}
@@ -106,12 +112,46 @@ protected:
high_->push_back(point, hi_text_);
}
else if ( point.low()) {
- low_->push_back(point, hi_text_);
+ low_->push_back(point, lo_text_);
}
else {
MagLog::warning() << "high/low information not set in point-> the point is ignored" << "\n";
}
-
+ ostringstream nice;
+ nice << MagicsFormat(format_, point.value());
+ if ( point.high()) {
+ TextSymbol* text = new TextSymbol();
+
+ MagFont font;
+ font.name("sansserif");
+ font.colour(*hi_colour_);
+ font.size(contour_hilo_height_);
+ text->font(font);
+
+ text->setMarker(index_);
+ text->setColour(*colour_); // Colour of the symbol
+ text->setHeight(height_);
+ text->blanking(blanking_);
+ text->push_back(point, nice.str());
+ hilo.push_back(text);
+ }
+ else if ( point.low()) {
+ TextSymbol* text = new TextSymbol();
+
+ MagFont font;
+ font.name("sansserif");
+ font.colour(*lo_colour_);
+ font.size(contour_hilo_height_);
+ text->font(font);
+
+ text->setMarker(index_);
+ text->setColour(*colour_); // Colour of the symbol
+ text->setHeight(height_);
+ text->blanking(blanking_);
+ text->push_back(point, nice.str());
+ hilo.push_back(text);
+
+ }
}
TextSymbol* high_;
diff --git a/src/visualisers/HiLoMarker.h b/src/visualisers/HiLoMarker.h
index c20ab6f..d478ec8 100644
--- a/src/visualisers/HiLoMarker.h
+++ b/src/visualisers/HiLoMarker.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLoMarker.h
\brief Definition of the Template class HiLoMarker.
diff --git a/src/visualisers/HiLoMarkerBase.h b/src/visualisers/HiLoMarkerBase.h
index 3b05133..d50197c 100644
--- a/src/visualisers/HiLoMarkerBase.h
+++ b/src/visualisers/HiLoMarkerBase.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLoMarkerBase.h
\brief Definition of the Template class HiLoMarkerBase.
diff --git a/src/visualisers/HiLoNumber.h b/src/visualisers/HiLoNumber.h
index 58f3c28..8ac79b9 100644
--- a/src/visualisers/HiLoNumber.h
+++ b/src/visualisers/HiLoNumber.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLoNumber.h
\brief Definition of the Template class HiLoNumber.
diff --git a/src/visualisers/HiLoTechnique.h b/src/visualisers/HiLoTechnique.h
index 38dbab0..b39275f 100644
--- a/src/visualisers/HiLoTechnique.h
+++ b/src/visualisers/HiLoTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLoTechnique.h
\brief Definition of the Template class HiLoTechnique.
diff --git a/src/visualisers/HiLoText.h b/src/visualisers/HiLoText.h
index 67d93a2..d73571c 100644
--- a/src/visualisers/HiLoText.h
+++ b/src/visualisers/HiLoText.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HiLoText.h
\brief Definition of the Template class HiLoText.
diff --git a/src/visualisers/HistoIndividualMode.h b/src/visualisers/HistoIndividualMode.h
index 47b423e..ad20a63 100644
--- a/src/visualisers/HistoIndividualMode.h
+++ b/src/visualisers/HistoIndividualMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HistoIndividualMode.h
\brief Definition of the Template class HistoIndividualMode.
diff --git a/src/visualisers/HistoMode.h b/src/visualisers/HistoMode.h
index 3ce48e6..02a1d54 100644
--- a/src/visualisers/HistoMode.h
+++ b/src/visualisers/HistoMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HistoMode.h
\brief Definition of the Template class HistoMode.
diff --git a/src/visualisers/HistoTableMode.h b/src/visualisers/HistoTableMode.h
index 2da850d..7ab068b 100644
--- a/src/visualisers/HistoTableMode.h
+++ b/src/visualisers/HistoTableMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HistoTableMode.h
\brief Definition of the Template class HistoTableMode.
diff --git a/src/visualisers/Histogram.cc b/src/visualisers/Histogram.cc
index 238d747..07bcf81 100644
--- a/src/visualisers/Histogram.cc
+++ b/src/visualisers/Histogram.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Histogram.cc
\brief Implementation of the Template class Histogram.
diff --git a/src/visualisers/Histogram.h b/src/visualisers/Histogram.h
index 42771f5..bf31676 100644
--- a/src/visualisers/Histogram.h
+++ b/src/visualisers/Histogram.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Histogram.h
\brief Definition of the Template class Histogram.
diff --git a/src/visualisers/ImageCalculateColourTechnique.h b/src/visualisers/ImageCalculateColourTechnique.h
index bbbac32..a81fafc 100644
--- a/src/visualisers/ImageCalculateColourTechnique.h
+++ b/src/visualisers/ImageCalculateColourTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ImageCalculateColourTechnique.h
\brief Definition of the Template class ImageCalculateColourTechnique.
diff --git a/src/visualisers/ImageListColourTechnique.h b/src/visualisers/ImageListColourTechnique.h
index cfafbd4..189bb1e 100644
--- a/src/visualisers/ImageListColourTechnique.h
+++ b/src/visualisers/ImageListColourTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ImageListColourTechnique.h
\brief Definition of the Template class ImageListColourTechnique.
diff --git a/src/visualisers/ImportPlot.h b/src/visualisers/ImportPlot.h
index 93092e4..b06c463 100644
--- a/src/visualisers/ImportPlot.h
+++ b/src/visualisers/ImportPlot.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ImportPlot.h
\brief Definition of the Template class ImportPlot.
diff --git a/src/visualisers/IntervalSelectionType.cc b/src/visualisers/IntervalSelectionType.cc
index c09877e..6c3cf66 100644
--- a/src/visualisers/IntervalSelectionType.cc
+++ b/src/visualisers/IntervalSelectionType.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IntervalSelectionType.cc
\brief Implementation of the Template class IntervalSelectionType.
diff --git a/src/visualisers/IntervalSelectionType.h b/src/visualisers/IntervalSelectionType.h
index aaddfcb..2ccfb32 100644
--- a/src/visualisers/IntervalSelectionType.h
+++ b/src/visualisers/IntervalSelectionType.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IntervalSelectionType.h
\brief Definition of the Template class IntervalSelectionType.
diff --git a/src/visualisers/Intervals.h b/src/visualisers/Intervals.h
index 9965c7c..43677fe 100644
--- a/src/visualisers/Intervals.h
+++ b/src/visualisers/Intervals.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Intervals.h
\brief Definition of the Template class Intervals.
diff --git a/src/visualisers/IsoHighlight.h b/src/visualisers/IsoHighlight.h
index cafba4f..98845ce 100644
--- a/src/visualisers/IsoHighlight.h
+++ b/src/visualisers/IsoHighlight.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IsoHighlight.h
\brief Definition of the Template class IsoHighlight.
diff --git a/src/visualisers/IsoLabel.cc b/src/visualisers/IsoLabel.cc
index 2d426a3..9f03e09 100644
--- a/src/visualisers/IsoLabel.cc
+++ b/src/visualisers/IsoLabel.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IsoLabel.cc
\brief Implementation of the Template class IsoLabel.
diff --git a/src/visualisers/IsoLabel.h b/src/visualisers/IsoLabel.h
index 6092b49..91126bf 100644
--- a/src/visualisers/IsoLabel.h
+++ b/src/visualisers/IsoLabel.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IsoLabel.h
\brief Definition of the Template class IsoLabel.
diff --git a/src/visualisers/IsoPlot.cc b/src/visualisers/IsoPlot.cc
index 250f5e2..f80ca9e 100644
--- a/src/visualisers/IsoPlot.cc
+++ b/src/visualisers/IsoPlot.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IsoPlot.cc
\brief Implementation of the Template class IsoPlot.
@@ -179,59 +171,59 @@ public:
}
else {
- // intersect !
- // Create line from 1first
+ // intersect !
+ // Create line from 1first
- typedef boost::geometry::model::polygon<PaperPoint > polygon;
+ typedef boost::geometry::model::polygon<PaperPoint > polygon;
- polygon previous, pts;
+ polygon previous, pts;
- for ( vector<PaperPoint>::iterator pt = points.begin(); pt != points.end(); ++pt ) {
- pts.outer().push_back(*pt);
- }
- pts.outer().push_back(points.front());
- vector<vector<Point> > result;
- helper->second->computePolygonLines(result);
- ASSERT( result.size() == 1);
- for ( vector<Point>::iterator pt = result.front().begin(); pt != result.front().end(); ++pt ) {
- previous.outer().push_back(PaperPoint(pt->x_, pt->y_));
- }
+ for ( vector<PaperPoint>::iterator pt = points.begin(); pt != points.end(); ++pt ) {
+ pts.outer().push_back(*pt);
+ }
+ pts.outer().push_back(points.front());
+ vector<vector<Point> > result;
+ helper->second->computePolygonLines(result);
+ ASSERT( result.size() == 1);
+ for ( vector<Point>::iterator pt = result.front().begin(); pt != result.front().end(); ++pt ) {
+ previous.outer().push_back(PaperPoint(pt->x_, pt->y_));
+ }
- helper_[index] = new SegmentJoiner();
+ helper_[index] = new SegmentJoiner();
- std::vector<polygon > output;
+ std::vector<polygon > output;
- try {
- boost::geometry::intersection(previous, pts, output);
+ try {
+ boost::geometry::intersection(previous, pts, output);
- if (output.size() == 1){
- vector<PaperPoint> xx;
- for ( vector<PaperPoint>::iterator pt = output.front().outer().begin(); pt != output.front().outer().end(); ++pt ) {
- xx.push_back(*pt);
- }
+ if (output.size() == 1){
+ vector<PaperPoint> xx;
+ for ( vector<PaperPoint>::iterator pt = output.front().outer().begin(); pt != output.front().outer().end(); ++pt ) {
+ xx.push_back(*pt);
+ }
- push_back(index, xx);
+ push_back(index, xx);
- }
- else
- {
+ }
+ else
+ {
- boost::geometry::union_(pts, previous, output);
- if (output.size() == 1){
- push_back(index, output.front().outer());
- }
- else
- push_back(index, previous.outer());
+ boost::geometry::union_(pts, previous, output);
+ if (output.size() == 1){
+ push_back(index, output.front().outer());
+ }
+ else
+ push_back(index, previous.outer());
- }
- }
- catch (...) {
- // ignore
- }
+ }
+ }
+ catch (...) {
+ // ignore
+ }
}
@@ -256,6 +248,7 @@ public:
}
void split();
+ void split(int);
void addShape(int index)
{
@@ -375,7 +368,7 @@ public:
joiner.computePolygonLines(result);
Polyline* poly = 0;
if ( result.empty() )
- continue;
+ continue;
bool reverse = joiner.isHole(result.front());
for (vector<vector<Point> >::iterator j = result.begin() ; j != result.end(); ++j) {
@@ -459,6 +452,30 @@ void CellBox::shade(const IsoPlot& owner) {
}
+void CellBox::split(int)
+{
+
+ // split in 8
+
+
+ if ( row1_ == row2_ && column1_ == column2_ )
+ return;
+
+ const int row = (row2_ + row1_) /2;
+ const int column = (column2_+ column1_)/4;
+
+
+ // Push 8 cells:
+ push_back(new CellBox(parent_, row1_, row, column1_, column));
+ push_back(new CellBox(parent_, row1_, row, column+1, 2*column));
+ push_back(new CellBox(parent_, row1_, row, (2*column)+1, 3*column));
+ push_back(new CellBox(parent_, row1_, row, (3*column)+1, column2_));
+ push_back(new CellBox(parent_, row+1, row2_, column1_, column));
+ push_back(new CellBox(parent_, row+1, row2_, column+1, 2*column));
+ push_back(new CellBox(parent_, row+1, row2_, (2*column)+1, 3*column));
+ push_back(new CellBox(parent_, row+1, row2_, (3*column)+1, column2_));
+
+}
void CellBox::split()
{
@@ -1177,7 +1194,7 @@ void IsoPlot::isoline(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
{
const Transformation& transformation = parent.transformation();
-
+
@@ -1244,6 +1261,7 @@ void IsoPlot::isoline(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
vector<IsoProducer* > producers_;
{
+ Timer timer("Threading", "Threading");
VectorOfPointers<vector<ThreadControler *> > consumers;
VectorOfPointers<vector<ThreadControler *> > producers;
segments_.clear();
@@ -1332,7 +1350,14 @@ void IsoPlot::isoline(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
void IsoPlot::operator()(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
{
prepare(data);
- if ( legend_only_ ) return;
+ if ( legend_only_ ) {
+ if ( rainbow_ ) {
+ rainbowMethod_->set(*this);
+ rainbowMethod_->prepare(*levelSelection_, true);
+ setThicknessAndStyle();
+ }
+ return;
+ }
{
Timer timer("contouring", "Time spent in contouring");
@@ -1363,7 +1388,7 @@ void IsoPlot::isoline(MatrixHandler& data, BasicGraphicsObjectContainer& parent)
for (vector<Polyline* >::const_iterator poly = (*lines)->begin(); poly != (*lines)->end(); ++poly)
{
if ( (*poly)->empty() ) continue;
-
+
if ( !rainbow_ ) {
@@ -1459,8 +1484,8 @@ void IsoPlot::visit(Data& data, LegendVisitor& legend) {
line->setColour((*rainbowMethod_)(*level));
line->setLineStyle(line_style(*level));
- line->setThickness(thickness(*level));
- legend.add(new LineEntry(*level, line));
+ line->setThickness(thickness(*level)*5);
+ legend.add(new RainbowEntry(*level, line));
}
break;
}
@@ -1604,7 +1629,9 @@ void IsoPlot::visit(Data& data, PointsHandler& points, HistoVisitor& visitor)
helper.visit(beans, data, points, visitor);
}
-CellArray::CellArray(MatrixHandler& data, IntervalMap<int>& range, const Transformation& transformation, int width, int height, float resol, const string& technique) :
+CellArray::CellArray(MatrixHandler& data,
+ IntervalMap<int>& range,
+ const Transformation& transformation, int width, int height, float resol, const string& technique) :
rangeFinder_(range),data_(data)
{
Timer timer("CellArray", "CellArray");
@@ -1652,6 +1679,9 @@ CellArray::CellArray(MatrixHandler& data, IntervalMap<int>& range, const Transfo
double max = data.max();
double missing = data.missing();
+ double newmax = data.min();
+ double newmin = data.max();
+
MagLog::dev() << "min = " << data.min() << " max = " << data.max() << endl;
for (vector< std::pair<double, double> >::iterator xy = xypoints.begin(); xy != xypoints.end(); ++xy) {
@@ -1668,13 +1698,14 @@ CellArray::CellArray(MatrixHandler& data, IntervalMap<int>& range, const Transfo
if (value != missing) {
if (value < min)
value = min;
+ if (value < newmin)
+ newmin = value;
if (value > max)
- value=max;
- }
- //else value = 0;
-
-
+ value=max;
+ if (value > newmax)
+ newmax = value;
+ }
points_.push_back(value);
++geo;
}
@@ -1773,8 +1804,8 @@ GridCell::GridCell(const CellArray& data, int row, int column, const Transformat
count++;
for (int i = 0; i < 4; i++) {
-
-
+
+
transformation.fast_reproject(columns_[i], rows_[i]);
if ( columns_[i] < minx ) {
diff --git a/src/visualisers/IsoPlot.h b/src/visualisers/IsoPlot.h
index e41a10e..5b268b7 100644
--- a/src/visualisers/IsoPlot.h
+++ b/src/visualisers/IsoPlot.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IsoPlot.h
\brief Definition of the Template class IsoPlot.
diff --git a/src/visualisers/IsoShading.cc b/src/visualisers/IsoShading.cc
index f4d6f51..c45b933 100644
--- a/src/visualisers/IsoShading.cc
+++ b/src/visualisers/IsoShading.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IsoShading.cc
\brief Implementation of the Template class IsoShading.
diff --git a/src/visualisers/IsoShading.h b/src/visualisers/IsoShading.h
index 8acc959..2fe0302 100644
--- a/src/visualisers/IsoShading.h
+++ b/src/visualisers/IsoShading.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file IsoShading.h
\brief Definition of the Template class IsoShading.
diff --git a/src/visualisers/LabelPlotting.cc b/src/visualisers/LabelPlotting.cc
index 116d4de..f1bf790 100644
--- a/src/visualisers/LabelPlotting.cc
+++ b/src/visualisers/LabelPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LabelPlotting.cc
\brief Implementation of the Template class LabelPlotting.
diff --git a/src/visualisers/LabelPlotting.h b/src/visualisers/LabelPlotting.h
index 4583d4f..885b196 100644
--- a/src/visualisers/LabelPlotting.h
+++ b/src/visualisers/LabelPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LabelPlotting.h
\brief Definition of the Template class LabelPlotting.
diff --git a/src/visualisers/LabelPlottingBase.h b/src/visualisers/LabelPlottingBase.h
index 7e3a271..d19b2a9 100644
--- a/src/visualisers/LabelPlottingBase.h
+++ b/src/visualisers/LabelPlottingBase.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LabelPlottingBase.h
\brief Definition of the Template class LabelPlottingBase.
diff --git a/src/visualisers/LegendMethod.cc b/src/visualisers/LegendMethod.cc
index 69b93d6..07ad5f1 100644
--- a/src/visualisers/LegendMethod.cc
+++ b/src/visualisers/LegendMethod.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LegendMethod.cc
\brief Implementation of the Template class LegendMethod.
@@ -79,12 +71,12 @@ void ContinuousLegendMethod::row(LegendEntry& entry, double x, double y, Text& l
entry.notext();
PaperPoint middle(x, y);
entry.rowBox(middle, task);
-
- if ( entry.needContinuousText() ) {
- legend.setJustification(MLEFT);
- middle.y_ -= 0.5;
- legend.push_back(middle); // We attach the text on the top middle of the symbol!
- }
+ if ( labelCount_ % label_frequency_ == 0 )
+ if ( entry.needContinuousText(legend) ) {
+
+ middle.y_ -= 0.5;
+ legend.push_back(middle); // We attach the text on the top middle of the symbol!
+ }
labelCount_++;
}
@@ -94,10 +86,12 @@ void ContinuousLegendMethod::column(LegendEntry& entry, double x, double y, Text
if ( labelCount_ % label_frequency_ != 0 )
entry.notext();
entry.columnBox(PaperPoint(x, y), task);
- if ( entry.needContinuousText() ) {
- legend.setJustification(MLEFT);
- legend.push_back(PaperPoint(x+0.25, y)); // WE attach the text on the right of the sumbol!
- }
+ if ( labelCount_ % label_frequency_ == 0 )
+
+ if ( entry.needContinuousText(legend) ) {
+
+ legend.push_back(PaperPoint(x+0.25, y)); // WE attach the text on the right of the sumbol!
+ }
labelCount_++;
}
void HistogramLegendMethod::row(LegendEntry& entry, double x, double y, Text&, BasicGraphicsObjectContainer& out)
diff --git a/src/visualisers/LegendMethod.h b/src/visualisers/LegendMethod.h
index b8571c4..35961c0 100644
--- a/src/visualisers/LegendMethod.h
+++ b/src/visualisers/LegendMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LegendMethod.h
\brief Definition of the Template class LegendMethod.
diff --git a/src/visualisers/LevelListSelectionType.cc b/src/visualisers/LevelListSelectionType.cc
index e32223c..8c5e29a 100644
--- a/src/visualisers/LevelListSelectionType.cc
+++ b/src/visualisers/LevelListSelectionType.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LevelListSelectionType.cc
\brief Implementation of the Template class LevelListSelectionType.
diff --git a/src/visualisers/LevelListSelectionType.h b/src/visualisers/LevelListSelectionType.h
index a3dd44d..892caa3 100644
--- a/src/visualisers/LevelListSelectionType.h
+++ b/src/visualisers/LevelListSelectionType.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LevelListSelectionType.h
\brief Definition of the Template class LevelListSelectionType.
diff --git a/src/visualisers/LevelSelection.cc b/src/visualisers/LevelSelection.cc
index 02de7e0..71b194b 100644
--- a/src/visualisers/LevelSelection.cc
+++ b/src/visualisers/LevelSelection.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LevelSelection.cc
\brief Implementation of the Template class LevelSelection.
diff --git a/src/visualisers/LevelSelection.h b/src/visualisers/LevelSelection.h
index 5eb8a71..9411bb5 100644
--- a/src/visualisers/LevelSelection.h
+++ b/src/visualisers/LevelSelection.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LevelSelection.h
\brief Definition of the Template class LevelSelection.
diff --git a/src/visualisers/LinearTableMode.cc b/src/visualisers/LinearTableMode.cc
index 1ffec95..84528c5 100644
--- a/src/visualisers/LinearTableMode.cc
+++ b/src/visualisers/LinearTableMode.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LinearTableMode.cc
\brief Implementation of the Template class LinearTableMode.
diff --git a/src/visualisers/LinearTableMode.h b/src/visualisers/LinearTableMode.h
index 1193593..25ec063 100644
--- a/src/visualisers/LinearTableMode.h
+++ b/src/visualisers/LinearTableMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LinearTableMode.h
\brief Definition of the Template class LinearTableMode.
diff --git a/src/visualisers/ListColourTechnique.cc b/src/visualisers/ListColourTechnique.cc
index ae47910..680886c 100644
--- a/src/visualisers/ListColourTechnique.cc
+++ b/src/visualisers/ListColourTechnique.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ListColourTechnique.cc
\brief Implementation of the Template class ListColourTechnique.
diff --git a/src/visualisers/ListColourTechnique.h b/src/visualisers/ListColourTechnique.h
index 6fe2c67..2d33d2a 100644
--- a/src/visualisers/ListColourTechnique.h
+++ b/src/visualisers/ListColourTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ListColourTechnique.h
\brief Definition of the Template class ListColourTechnique.
diff --git a/src/visualisers/LookupTableMode.cc b/src/visualisers/LookupTableMode.cc
index 07173c0..2c612e3 100644
--- a/src/visualisers/LookupTableMode.cc
+++ b/src/visualisers/LookupTableMode.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LookupTableMode.cc
\brief Implementation of the Template class LookupTableMode.
diff --git a/src/visualisers/LookupTableMode.h b/src/visualisers/LookupTableMode.h
index 61abcc3..76ec427 100644
--- a/src/visualisers/LookupTableMode.h
+++ b/src/visualisers/LookupTableMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file LookupTableMode.h
\brief Definition of the Template class LookupTableMode.
diff --git a/src/visualisers/MarkerSelection.h b/src/visualisers/MarkerSelection.h
index d179178..4435b20 100644
--- a/src/visualisers/MarkerSelection.h
+++ b/src/visualisers/MarkerSelection.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MarkerSelection.h
\brief Definition of the Template class MarkerSelection.
diff --git a/src/visualisers/MarkerSelectionCount.h b/src/visualisers/MarkerSelectionCount.h
index 56fb0a1..3ac83f0 100644
--- a/src/visualisers/MarkerSelectionCount.h
+++ b/src/visualisers/MarkerSelectionCount.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MarkerSelectionCount.h
\brief Definition of the Template class MarkerSelectionCount.
diff --git a/src/visualisers/MarkerSelectionList.h b/src/visualisers/MarkerSelectionList.h
index 1dfc8ed..73ef676 100644
--- a/src/visualisers/MarkerSelectionList.h
+++ b/src/visualisers/MarkerSelectionList.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MarkerSelectionList.h
\brief Definition of the Template class MarkerSelectionList.
diff --git a/src/visualisers/MarkerShadingTechnique.cc b/src/visualisers/MarkerShadingTechnique.cc
index 0bb021d..8d203d8 100644
--- a/src/visualisers/MarkerShadingTechnique.cc
+++ b/src/visualisers/MarkerShadingTechnique.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MarkerShadingTechnique.cc
\brief Implementation of the Template class MarkerShadingTechnique.
diff --git a/src/visualisers/MarkerShadingTechnique.h b/src/visualisers/MarkerShadingTechnique.h
index c16fbd4..5e111f3 100644
--- a/src/visualisers/MarkerShadingTechnique.h
+++ b/src/visualisers/MarkerShadingTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MarkerShadingTechnique.h
\brief Definition of the Template class MarkerShadingTechnique.
diff --git a/src/visualisers/MarkerValuePlotMethod.h b/src/visualisers/MarkerValuePlotMethod.h
index f380da2..f3fd4d0 100644
--- a/src/visualisers/MarkerValuePlotMethod.h
+++ b/src/visualisers/MarkerValuePlotMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MarkerValuePlotMethod.h
\brief Definition of the Template class MarkerValuePlotMethod.
diff --git a/src/visualisers/MetgramGraph.cc b/src/visualisers/MetgramGraph.cc
index f90d976..9b34cef 100644
--- a/src/visualisers/MetgramGraph.cc
+++ b/src/visualisers/MetgramGraph.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MetgramGraph.cc
\brief Implementation of the Template class MetgramGraph.
diff --git a/src/visualisers/MetgramGraph.h b/src/visualisers/MetgramGraph.h
index 3d33c3e..4a29593 100644
--- a/src/visualisers/MetgramGraph.h
+++ b/src/visualisers/MetgramGraph.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MetgramGraph.h
\brief Definition of the Template class MetgramGraph.
diff --git a/src/visualisers/MetgramStyle.cc b/src/visualisers/MetgramStyle.cc
index c802057..8acaf29 100644
--- a/src/visualisers/MetgramStyle.cc
+++ b/src/visualisers/MetgramStyle.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MetgramStyle.cc
\brief Implementation of the Template class MetgramStyle.
diff --git a/src/visualisers/MetgramStyle.h b/src/visualisers/MetgramStyle.h
index 7b4f70a..f4e1a3c 100644
--- a/src/visualisers/MetgramStyle.h
+++ b/src/visualisers/MetgramStyle.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file MetgramStyle.h
\brief Definition of the Template class MetgramStyle.
diff --git a/src/visualisers/NormalTableMode.cc b/src/visualisers/NormalTableMode.cc
index d903cfe..7cdebc1 100644
--- a/src/visualisers/NormalTableMode.cc
+++ b/src/visualisers/NormalTableMode.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file NormalTableMode.h
\brief Implementation of the Template class NormalTableMode.
diff --git a/src/visualisers/NormalTableMode.h b/src/visualisers/NormalTableMode.h
index 2d399f2..9374ce5 100644
--- a/src/visualisers/NormalTableMode.h
+++ b/src/visualisers/NormalTableMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file NormalTableMode.cc
\brief Definition of the Template class NormalTableMode.
diff --git a/src/visualisers/ObsItem.h b/src/visualisers/ObsItem.h
index 37c0dcc..03781e0 100644
--- a/src/visualisers/ObsItem.h
+++ b/src/visualisers/ObsItem.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ObsItem.h
\brief Definition of the Template class ObsItem.
diff --git a/src/visualisers/ObsItemFamily.cc b/src/visualisers/ObsItemFamily.cc
index 99c5873..70365a6 100644
--- a/src/visualisers/ObsItemFamily.cc
+++ b/src/visualisers/ObsItemFamily.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ObsItemFamily.cc
\brief Implementation of the Template class ObsItemfamily.
@@ -34,6 +26,8 @@
#include "Text.h"
#include "PaperPoint.h"
+#include "Tokenizer.h"
+
using namespace magics;
@@ -460,7 +454,7 @@ void ObsPresentWeather::operator()(CustomisedPoint& point, ComplexSymbol& symbo
else {
map<int, string>::iterator w = presentweather.find(value->second);
if ( w == presentweather.end() ) {
- MagLog::warning() << "Present Weather " << value->second << " is not recognised yet, pease conatct the magics team " << endl;
+ MagLog::warning() << "OBS > Present Weather " << value->second << " not recognised yet, please contact Magics team" << endl;
}
else
ww = w->second;
@@ -1001,6 +995,85 @@ void ObsEra::operator()(CustomisedPoint& point, ComplexSymbol& symbol) const
}
+
+void ObsNumber::visit(std::set<string>& tokens)
+{
+ tokens.insert(key_);
+}
+
+void ObsNumber::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_);
+ object->y(row_);
+ MagFont font;
+ font.name("sansserif");
+ font.colour(colour_);
+ font.size(owner_->size_);
+
+ object->text(text);
+ object->font(font);
+ symbol.add(object);
+
+}
+
+std::set<string> keys_;
+
+void ObsString::visit(std::set<string>& tokens)
+{
+ // Extract the keys needed from the format ${key}
+ Tokenizer tstart("${");
+ Tokenizer tend("}");
+
+ vector<string> keys;
+
+ tstart(format_, keys);
+
+ for (vector<string>::const_iterator token = keys.begin(); token != keys.end(); ++token) {
+
+ vector<string> key;
+ tend(*token, key);
+ if ( !key.empty()) {
+ tokens.insert(key.front());
+ keys_.insert(key.front());
+
+ }
+
+ }
+
+
+}
+
+void ObsString::operator()(CustomisedPoint& point, ComplexSymbol& symbol) const
+{
+ string text = format_;
+ for (std::set<string>::iterator key = keys_.begin(); key != keys_.end(); ++key) {
+ CustomisedPoint::iterator pt = point.find(*key);
+ string val = (pt == point.end()) ? (*key) : tostring(point[*key]);
+
+ string rkey = "${" + *key + "}";
+ text = text.replace(text.find(rkey), rkey.length(), val);
+ }
+
+
+ TextItem* object = new TextItem();
+ object->x(column_);
+ object->y(row_);
+ MagFont font;
+ font.name("sansserif");
+ font.colour(colour_);
+ font.size(owner_->size_);
+
+ object->text(text);
+ object->font(font);
+ symbol.add(object);
+
+}
+
void ObsSeaTemperature::visit(std::set<string>& tokens)
{
if (!owner_->sea_temperature_visible_) return;
diff --git a/src/visualisers/ObsItemFamily.h b/src/visualisers/ObsItemFamily.h
index fc599dd..5f3dd5d 100644
--- a/src/visualisers/ObsItemFamily.h
+++ b/src/visualisers/ObsItemFamily.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef ObsItemFamily_H
#define ObsItemFamily_H
@@ -38,12 +30,14 @@ public:
column_ = atoi(find(def, "column").c_str());
colour_ = find(def, "colour", "black");
key_ = find(def, "key", "");
+ format_ = find(def, "format", "");
}
protected:
int row_;
int column_;
string colour_;
string key_;
+ string format_;
};
class ObsStationRing : public ObsItemBox
@@ -416,4 +410,32 @@ protected:
};
+class ObsString : public ObsItemBox
+{
+public:
+ ObsString() {}
+ ~ObsString() {}
+
+ void visit(std::set<string>& tokens);
+ void operator()(CustomisedPoint&, ComplexSymbol&) const;
+
+protected:
+ void print(ostream& out) const { out << "ObsNumber"; }
+ std::set<string> keys_;
+
+};
+class ObsNumber : public ObsItemBox
+{
+public:
+ ObsNumber() {}
+ ~ObsNumber() {}
+
+ void visit(std::set<string>& tokens);
+ void operator()(CustomisedPoint&, ComplexSymbol&) const;
+
+protected:
+ void print(ostream& out) const { out << "ObsNumber"; }
+
+
+};
#endif
diff --git a/src/visualisers/ObsPlotting.cc b/src/visualisers/ObsPlotting.cc
index 05e4add..d3ef99b 100644
--- a/src/visualisers/ObsPlotting.cc
+++ b/src/visualisers/ObsPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ObsPlotting.cc
\brief Implementation of the Template class ObsPlotting.
@@ -141,4 +133,5 @@ static SimpleObjectMaker<ObsDemoItem2, ObsItem> ObsDemo2("obs_demo_item_2");
static SimpleObjectMaker<ObsWave, ObsItem> Wave("obs_wave_period_height");
static SimpleObjectMaker<ObsEra, ObsItem> Era("obs_era");
static SimpleObjectMaker<ObsSeaTemperature, ObsItem> SeaTempe("obs_sea_temperature");
-
+static SimpleObjectMaker<ObsNumber, ObsItem> Number("obs_number");
+static SimpleObjectMaker<ObsString, ObsItem> String("obs_string");
\ No newline at end of file
diff --git a/src/visualisers/ObsPlotting.h b/src/visualisers/ObsPlotting.h
index d264ce5..afd9a12 100644
--- a/src/visualisers/ObsPlotting.h
+++ b/src/visualisers/ObsPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ObsPlotting.h
\brief Definition of the Template class ObsPlotting.
diff --git a/src/visualisers/ObsTable.cc b/src/visualisers/ObsTable.cc
index 8d655f3..afc072b 100644
--- a/src/visualisers/ObsTable.cc
+++ b/src/visualisers/ObsTable.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ObsTable.cc
\brief Implementation of the Template class LocalTable.
diff --git a/src/visualisers/ObsTable.h b/src/visualisers/ObsTable.h
index 785f8d0..dca89ae 100644
--- a/src/visualisers/ObsTable.h
+++ b/src/visualisers/ObsTable.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
#ifndef ObsTable_H
#define ObsTable_H
diff --git a/src/visualisers/OriginMarker.h b/src/visualisers/OriginMarker.h
index 2478c09..f2f2dfc 100644
--- a/src/visualisers/OriginMarker.h
+++ b/src/visualisers/OriginMarker.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file OriginMarker.h
\brief Definition of the Template class OriginMarker.
diff --git a/src/visualisers/OutLayerTechnique.cc b/src/visualisers/OutLayerTechnique.cc
index ee7a97b..0d3ba09 100644
--- a/src/visualisers/OutLayerTechnique.cc
+++ b/src/visualisers/OutLayerTechnique.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelection.cc
\brief Implementation of the Template class HeightSelection.
diff --git a/src/visualisers/OutLayerTechnique.h b/src/visualisers/OutLayerTechnique.h
index 6872980..f5e3102 100644
--- a/src/visualisers/OutLayerTechnique.h
+++ b/src/visualisers/OutLayerTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file HeightSelection.h
\brief Definition of the Template class HeightSelection.
diff --git a/src/visualisers/PolyShadingMethod.cc b/src/visualisers/PolyShadingMethod.cc
index 0323e00..0f5591a 100644
--- a/src/visualisers/PolyShadingMethod.cc
+++ b/src/visualisers/PolyShadingMethod.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PolyShadingMethod.h
\brief Definition of the Template class PolyShadingMethod.
diff --git a/src/visualisers/PolyShadingMethod.h b/src/visualisers/PolyShadingMethod.h
index b2e6968..bb3738b 100644
--- a/src/visualisers/PolyShadingMethod.h
+++ b/src/visualisers/PolyShadingMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PolyShadingMethod.h
\brief Definition of the Template class PolyShadingMethod.
diff --git a/src/visualisers/PolyShadingTechnique.cc b/src/visualisers/PolyShadingTechnique.cc
index a77999e..247b8dc 100644
--- a/src/visualisers/PolyShadingTechnique.cc
+++ b/src/visualisers/PolyShadingTechnique.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PolyShadingMethod.h
\brief Definition of the Template class PolyShadingMethod.
diff --git a/src/visualisers/PolyShadingTechnique.h b/src/visualisers/PolyShadingTechnique.h
index 679cc9d..4227aab 100644
--- a/src/visualisers/PolyShadingTechnique.h
+++ b/src/visualisers/PolyShadingTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file PolyShadingTechnique.h
\brief Definition of the Template class PolyShadingTechnique.
diff --git a/src/visualisers/ShadingTechnique.h b/src/visualisers/ShadingTechnique.h
index 97a18c4..fbd7314 100644
--- a/src/visualisers/ShadingTechnique.h
+++ b/src/visualisers/ShadingTechnique.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ShadingTechnique.h
\brief Definition of the Template class ShadingTechnique.
diff --git a/src/visualisers/SimplePolylineVisualiser.cc b/src/visualisers/SimplePolylineVisualiser.cc
index 8891361..c04ccb8 100644
--- a/src/visualisers/SimplePolylineVisualiser.cc
+++ b/src/visualisers/SimplePolylineVisualiser.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file BoxPlotVisualiser.cc
\brief Implementation of the Template class BoxPlotVisualiser.
diff --git a/src/visualisers/SimplePolylineVisualiser.h b/src/visualisers/SimplePolylineVisualiser.h
index 4a4b5bb..82092e0 100644
--- a/src/visualisers/SimplePolylineVisualiser.h
+++ b/src/visualisers/SimplePolylineVisualiser.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file SimplePolylineVisualiser.h
\brief Definition of the Template class SimplePolylineVisualiser.
diff --git a/src/visualisers/Streamlines.cc b/src/visualisers/Streamlines.cc
index b4c4639..55225a6 100644
--- a/src/visualisers/Streamlines.cc
+++ b/src/visualisers/Streamlines.cc
@@ -1,22 +1,12 @@
-
-
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file WindPlotting.cc
\brief Implementation of the Template class Wind.
diff --git a/src/visualisers/Streamlines.h b/src/visualisers/Streamlines.h
index bbd4686..ec14857 100644
--- a/src/visualisers/Streamlines.h
+++ b/src/visualisers/Streamlines.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Streamlines.h
\brief Definition of the Template class Streamlines.
diff --git a/src/visualisers/SymbolAdvancedTableMode.cc b/src/visualisers/SymbolAdvancedTableMode.cc
index 949fa7b..264a878 100644
--- a/src/visualisers/SymbolAdvancedTableMode.cc
+++ b/src/visualisers/SymbolAdvancedTableMode.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file SymbolAdvancedTableMode.h
\brief Implementation of the Template class SymbolAdvancedTableMode.
diff --git a/src/visualisers/SymbolAdvancedTableMode.h b/src/visualisers/SymbolAdvancedTableMode.h
index 49cf134..fb884cf 100644
--- a/src/visualisers/SymbolAdvancedTableMode.h
+++ b/src/visualisers/SymbolAdvancedTableMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file SymbolAdvancedTableMode.cc
\brief Definition of the Template class SymbolAdvancedTableMode.
diff --git a/src/visualisers/SymbolMode.cc b/src/visualisers/SymbolMode.cc
index fadb41d..65e52ce 100644
--- a/src/visualisers/SymbolMode.cc
+++ b/src/visualisers/SymbolMode.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file SymbolMode.cc
\brief Implementation of the Template class SymbolMode.
diff --git a/src/visualisers/SymbolMode.h b/src/visualisers/SymbolMode.h
index d19a9ac..4487df7 100644
--- a/src/visualisers/SymbolMode.h
+++ b/src/visualisers/SymbolMode.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file SymbolMode.h
\brief Definition of the Template class SymbolMode.
@@ -134,10 +126,10 @@ public:
virtual void visit(LegendVisitor&);
- void prepare() { update(); }
+ void prepare() { update(); properties();}
void update();
void properties() const;
- SymbolProperties operator()(double) const { properties(); return properties_; }
+ SymbolProperties operator()(double) const { return properties_; }
void visit(Data&, LegendVisitor&);
protected:
diff --git a/src/visualisers/SymbolPlotting.cc b/src/visualisers/SymbolPlotting.cc
index 3649a15..b893722 100644
--- a/src/visualisers/SymbolPlotting.cc
+++ b/src/visualisers/SymbolPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file SymbolPlotting.cc
\brief Implementation of the Template class SymbolPlotting.
diff --git a/src/visualisers/SymbolPlotting.h b/src/visualisers/SymbolPlotting.h
index febb1b0..9768c91 100644
--- a/src/visualisers/SymbolPlotting.h
+++ b/src/visualisers/SymbolPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file SymbolPlotting.h
\brief Definition of the Template class SymbolPlotting.
diff --git a/src/visualisers/TaylorGrid.cc b/src/visualisers/TaylorGrid.cc
index 00a7895..967e9c6 100644
--- a/src/visualisers/TaylorGrid.cc
+++ b/src/visualisers/TaylorGrid.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expres s or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TaylorGrid.cc
\brief Implementation of the Template class TaylorGrid.
diff --git a/src/visualisers/TaylorGrid.h b/src/visualisers/TaylorGrid.h
index 3c6d447..ddf5668 100644
--- a/src/visualisers/TaylorGrid.h
+++ b/src/visualisers/TaylorGrid.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TaylorGrid.h
\brief Definition of the Template class TaylorGrid.
diff --git a/src/visualisers/TephiGrid.cc b/src/visualisers/TephiGrid.cc
index 02ef583..71966cf 100644
--- a/src/visualisers/TephiGrid.cc
+++ b/src/visualisers/TephiGrid.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expres s or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TephiGrid.cc
\brief Implementation of the Template class TephiGrid.
diff --git a/src/visualisers/TephiGrid.h b/src/visualisers/TephiGrid.h
index db7b1f6..2ee711b 100644
--- a/src/visualisers/TephiGrid.h
+++ b/src/visualisers/TephiGrid.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TephiGrid.h
\brief Definition of the Template class TephiGrid.
diff --git a/src/visualisers/TextOrientation.cc b/src/visualisers/TextOrientation.cc
index cc3f826..79f3a80 100644
--- a/src/visualisers/TextOrientation.cc
+++ b/src/visualisers/TextOrientation.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TextOrientation.cc
\brief Implementation of the Template class TextOrientation.
diff --git a/src/visualisers/TextOrientation.h b/src/visualisers/TextOrientation.h
index 2da7a33..8f2e9c0 100644
--- a/src/visualisers/TextOrientation.h
+++ b/src/visualisers/TextOrientation.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file TextOrientation.h
\brief Definition of the Template class TextOrientation.
diff --git a/src/visualisers/UserDate.cc b/src/visualisers/UserDate.cc
index e365298..ccf6d65 100644
--- a/src/visualisers/UserDate.cc
+++ b/src/visualisers/UserDate.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file UserDate.cc
\brief Implementation of the Template class UserDate.
diff --git a/src/visualisers/UserDate.h b/src/visualisers/UserDate.h
index 22874db..09cdce9 100644
--- a/src/visualisers/UserDate.h
+++ b/src/visualisers/UserDate.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file UserDate.h
\brief Definition of the Template class UserDate.
diff --git a/src/visualisers/ValuePlot.cc b/src/visualisers/ValuePlot.cc
index 34695e3..6b32b36 100644
--- a/src/visualisers/ValuePlot.cc
+++ b/src/visualisers/ValuePlot.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ValuePlot.cc
\brief Implementation of the Template class ValuePlot.
diff --git a/src/visualisers/ValuePlot.h b/src/visualisers/ValuePlot.h
index 8605a4b..06dd297 100644
--- a/src/visualisers/ValuePlot.h
+++ b/src/visualisers/ValuePlot.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ValuePlot.h
\brief Definition of the Template class ValuePlot.
diff --git a/src/visualisers/ValuePlotBase.h b/src/visualisers/ValuePlotBase.h
index dd7e31d..5336417 100644
--- a/src/visualisers/ValuePlotBase.h
+++ b/src/visualisers/ValuePlotBase.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ValuePlotBase.h
\brief Definition of the Template class ValuePlotBase.
diff --git a/src/visualisers/ValuePlotMethod.h b/src/visualisers/ValuePlotMethod.h
index 8832370..12368e7 100644
--- a/src/visualisers/ValuePlotMethod.h
+++ b/src/visualisers/ValuePlotMethod.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file ValuePlotMethod.h
\brief Definition of the Template class ValuePlotMethod.
diff --git a/src/visualisers/VisDefInfo.h b/src/visualisers/VisDefInfo.h
index 169ae16..73f3214 100644
--- a/src/visualisers/VisDefInfo.h
+++ b/src/visualisers/VisDefInfo.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file VisDefInfo.h
\brief Definition of class VisDefInfo.
diff --git a/src/visualisers/Wind.cc b/src/visualisers/Wind.cc
index eb8d85f..22b3d55 100644
--- a/src/visualisers/Wind.cc
+++ b/src/visualisers/Wind.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Wind.cc
\brief Implementation of the Template class Wind.
diff --git a/src/visualisers/Wind.h b/src/visualisers/Wind.h
index 21d26d8..51abab2 100644
--- a/src/visualisers/Wind.h
+++ b/src/visualisers/Wind.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file Wind.h
\brief Definition of the Template class Wind.
diff --git a/src/visualisers/WindPlotting.cc b/src/visualisers/WindPlotting.cc
index 47d83a0..fd09f85 100644
--- a/src/visualisers/WindPlotting.cc
+++ b/src/visualisers/WindPlotting.cc
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file WindPlotting.cc
\brief Implementation of the Template class Wind.
diff --git a/src/visualisers/WindPlotting.h b/src/visualisers/WindPlotting.h
index 45294a2..234a20a 100644
--- a/src/visualisers/WindPlotting.h
+++ b/src/visualisers/WindPlotting.h
@@ -1,20 +1,12 @@
-/******************************** LICENSE ********************************
-
- Copyright 2007 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.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- ******************************** LICENSE ********************************/
+/*
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+ */
/*! \file WindPlotting.h
\brief Definition of the Template class WindPlotting.
diff --git a/src/web/MagJSon.cc b/src/web/MagJSon.cc
index 35c82ee..921eb92 100644
--- a/src/web/MagJSon.cc
+++ b/src/web/MagJSon.cc
@@ -195,3 +195,15 @@ void MagJSon::magics(const json_spirit::Value& value)
Timer timer("total", "execution");
magics.execute(tree_);
}
+
+bool ParamJSon::hasKey(const string& key)
+{
+
+ return ( find(key) != end() );
+}
+
+string ParamJSon::get(const string& key, const string& val)
+{
+ const_iterator value = find(key);
+ return ( value != end() ) ? value->second : val;
+}
\ No newline at end of file
diff --git a/src/web/MagJSon.h b/src/web/MagJSon.h
index 347f288..9583d6e 100644
--- a/src/web/MagJSon.h
+++ b/src/web/MagJSon.h
@@ -64,7 +64,9 @@ class ParamJSon : public map<string, string>
public:
ParamJSon(const string&);
~ParamJSon() {}
-
+ string get(const string&, const string&);
+ bool hasKey(const string&);
+
protected:
void magics(const json_spirit::Value&);
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 8282372..67d0534 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -10,7 +10,6 @@ ecbuild_add_resources( TARGET tools_scripts
newtemplate.pl
xml2cc.pl
xml2cc_list.pl
- xml2cc_new.pl
xml2doc.pl
xml2dtd.pl
xml2icon.pl
diff --git a/tools/magicsCompatibilityChecker b/tools/magicsCompatibilityChecker
index 1996c47..dc99081 100755
--- a/tools/magicsCompatibilityChecker
+++ b/tools/magicsCompatibilityChecker
@@ -15,8 +15,7 @@
# limitations under the License.
#
#
-# This script is provided by the ECMWF Meteorological Visualisation Section as help to identify
-# potential problems porting programs from using MAGICS 5/6 to Magics++.
+# This script is provided as help to identify potential problems porting programs from using MAGICS 5/6 to Magics++.
#
# We do NOT garantee that all issues can be found with this script!!!
#
diff --git a/tools/mapgen_clip b/tools/mapgen_clip
index a7e4edf..29d1059 100755
--- a/tools/mapgen_clip
+++ b/tools/mapgen_clip
@@ -15,11 +15,8 @@
# limitations under the License.
#
#
-# This script is provided by the ECMWF Meteorological Visualisation Section as help to
-# clip / reduce size of mapgen data files.
+# This script is provided as help to clip / reduce size of mapgen data files.
#
-
-
import sys
if len(sys.argv) < 6:
diff --git a/tools/xml2cc.pl b/tools/xml2cc.pl
index 47d6053..59bc00d 100755
--- a/tools/xml2cc.pl
+++ b/tools/xml2cc.pl
@@ -7,23 +7,19 @@
# granted to it by virtue of its status as an intergovernmental organisation nor
# does it submit to any jurisdiction.
-#test juanjo
use XML::Parser;
use Time::localtime;
-my $file = shift;
-my $dir = shift;
+my $file = shift;
+my $dir = shift;
+my $nosubdir = shift;
+
my $Author="MagicsTeam";
my $ecmwf="http://wms.ecmwf.int";
my $info = {};
my $element = {};
-my %direct = {
- "int" => "ParameterManager::getInt",
- "float" => "ParameterManager::getDouble",
- "string" => "ParameterManager::getString",
-};
my %basetype = (
"int" => 1,
@@ -33,33 +29,54 @@ my %basetype = (
"floatarray" =>1,
"stringarray" => 1,
"intarray" => 1,
+ "longintarray" => 1,
"LineStyle" =>1,
"ListPolicy" =>1,
"Hemisphere" =>1,
"ArrowPosition" => 1,
+ "AxisAutomaticSetting" => 1,
"Justification" => 1,
+ "Position" => 1,
"DisplayType" => 1,
"OpenGLDriverObserverPtr" => 1,
"Widget" =>1,
- "cairo_t" =>1,
+ "cairo_t*" =>1,
+ "QWidget*" =>1,
+ "QGraphicsScene*" => 1,
"Matrix" => 1,
- "GribHandlePtr" =>1,
- "QGraphicsScenePtr" => 1,
- "QWidgetPtr" => 1,
+ "GribHandlePtr" =>1,
);
+my %translator = (
+ "int" => "ParameterManager::getInt",
+ "float" => "ParameterManager::getDouble",
+ "string" => "ParameterManager::getString",
+ "stringarray" => "ParameterManager::getStringArray",
+ "bool" => "ParameterManager::getBool",
+ "doublearray" => "ParameterManager::getDoubleArray",
+ "floatarray" => "ParameterManager::getDoubleArray",
+ "intarray" => "ParameterManager::getIntArray",
+ "longintarray" => "ParameterManager::getLongIntArray"
+
+);
my %magtype = (
"float" =>'double',
);
+my %consttype = (
+ "string" =>'const string&',
+);
my %classtype = (
"Colour" =>1,
+ "DateTime" =>1,
+ "Path" => 1
);
my %arraytype = (
"floatarray" => "atof(data)",
"stringarray" => "data",
"intarray" => "atoi(data)",
+ "longintarray" => "atoi(data)",
);
my %quote = (
@@ -113,38 +130,50 @@ sub parse
}
}
-
-
-
-
my $xml= new XML::Parser(Style=>"Tree");
parse ($info, $xml->parsefile($file));
foreach my $object (keys %{$info->{magics}->{class}})
{
-
$current = $info->{magics}->{class}->{$object};
$directory = $info->{magics}->{class}->{$object}->{attributes}->{directory};
-
+ $tag = $info->{magics}->{class}->{$object}->{attributes}->{xmltag};
+ my $location;
+ if( defined $nosubdir and $nosubdir eq "nosubdir" ) {
+ $location = $dir;
+ }
+ else {
+ $location = "$dir/$directory";
+ }
+
######################################################
##### Include file
- open STDOUT, ">$dir/$directory/$object\Attributes.h";
+ open STDOUT, ">$location/$object\Attributes.h";
my $string = ctime();
print <<EOF;
+/******************************* LICENSE *******************************
+
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+
+ ******************************* LICENSE *******************************/
/*! \\file $object\Attributes.h
\\brief Definition of $object Attributes class.
+
This file is automatically generated.
Do Not Edit!
-
- Magics Team - ECMWF 2004
-
- Created: $string
-
+
+ Generated: $string
*/
@@ -152,17 +181,23 @@ foreach my $object (keys %{$info->{magics}->{class}})
#define $object\Attributes_H
#include "magics.h"
-#include "ParameterManager.h"
-#include "Factory.h"
+EOF
+ if (index($object, "Matrix") != -1) {
+ print "#include \"Matrix.h\"\n";
+ }
+ if (index($object, "Cairo") != -1) {
+ print "#include \"cairo.h\"\n";
+ }
-EOF
my $includes = {};
my @impl=split(/\//, $current->{attributes}->{implements});
+ my @prefixs=split(/\//, $current->{attributes}->{prefix});
+
my @interfaces = (split(/\//, $current->{attributes}->{interface}), @impl);
+
foreach $i (@impl)
{
-
print "#include \"$i.h\"\n";
}
@@ -170,12 +205,10 @@ EOF
my $sep = ":";
foreach $interface (@interfaces)
{
-
$parent="$parent$sep public $interface";
$sep = ", "
}
-
-
+
foreach my $param (@{$current->{parameter_list}})
{
my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
@@ -185,7 +218,7 @@ EOF
if ( !$basetype{$to} )
{
- if ($include eq "" ) {
+ if ($include eq "" ) {
$includes->{"$to.h"} = "ok";
}
else
@@ -199,9 +232,7 @@ EOF
{
print "#include \"$include\"\n";
}
-
print "\n";
-
my $template = $current->{attributes}->{template_attributes};
my $class = "$object\Attributes";
@@ -217,7 +248,6 @@ namespace magics {
class XmlNode;
-
$line
class $object\Attributes $parent
{
@@ -228,97 +258,23 @@ public:
// -- destructor
virtual ~$object\Attributes();
- virtual void set(const std::map<string, string>&);
+ virtual void set(const std::map<std::string, std::string>&);
virtual void set(const XmlNode&);
virtual void copy(const $object\Attributes&);
-
- void setTag(const string& tag) { tag_ = tag; }
-
-
-EOF
- my $xml_data = $current->{attributes}->{xml_data};
- if ($xml_data eq '' ) {
- print <<EOF;
- void setXmlData(const string&) {}
-EOF
- }
- else {
- my $to = $current->{parameter}->{$xml_data}->{attributes}->{to};
- my $member = $current->{parameter}->{$xml_data}->{attributes}->{member};
- if ( $arraytype{$to} ) {
- print("\tvoid setXmlData(const string& data) { $member\_.push_back($arraytype{$to}); } \n");
- }
- else {
- print("\tvoid setXmlData(const string& data) { $member\_ = data; }\n");
- }
- }
-
-
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $default = $current->{parameter}->{$param}->{attributes}->{default};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $from = $current->{parameter}->{$param}->{attributes}->{from};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- $to = "$to<$tpl> " unless $tpl eq "";
-
- my $value = lc $member;
- my $method = ucfirst $member;
-
- print <<EOF;
-/*!
- * Magics Information:
- * - Parameter name: $name
- * - Default: $default
- */
-EOF
- my $magto = $to;
- $magto = $magtype{$magto} if $magtype{$magto};
-
-
- if ( $basetype{$to} )
- {
- print <<EOF;
- void set$method($magto $value)
- { $member\_ = $value; }
- $magto get$method() const
- { return $member\_; }
-
-EOF
- }
- else
- {
- print <<EOF;
- void set$method($to* $value)
- { auto_ptr<$to> tmp($value); $member\_ = tmp; }
- const $to& get$method() const
- { return *$member\_; }
-
-EOF
- }
-
- }
+ virtual bool accept(const std::string&);
- print <<EOF;
- virtual void toxml(ostream& out, int tabs = 0) const { toxml(out, tag_, tabs); }
-
-protected:
-// -- method
- virtual void print(ostream&) const;
-
- virtual void toxml(ostream&, const string&, int tabs) const;
+ void setTag(const std::string& tag) { tag_ = tag; }
-// -- members:
+public:
+ // -- method
+ virtual void print(std::ostream&) const;
+ virtual void toxml(std::ostream& out) const;
+ // -- members:
string tag_;
EOF
- print "\tstring $xml_data\_;\n" unless $xml_data eq '';
- foreach my $param (@{$current->{parameter_list}})
+ print "\tstring $xml_data\_;\n" unless $xml_data eq '';
+ foreach my $param (@{$current->{parameter_list}})
{
my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
next if $todo eq 'no';
@@ -344,7 +300,6 @@ EOF
print <<EOF;
private:
-
friend ostream& operator<<(ostream& s,const $class& p)
{ p.print(s); return s; }
};
@@ -366,27 +321,33 @@ EOF
######################################################
##### Source file
- open STDOUT, ">$dir/$directory/$object\Attributes.cc";
-
-
+ open STDOUT, ">$location/$object\Attributes.cc";
+
print <<EOF;
+/******************************* LICENSE *******************************
+
+ * (C) Copyright 1996-2016 ECMWF.
+ *
+ * This software is licensed under the terms of the Apache Licence Version 2.0
+ * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+ * In applying this licence, ECMWF does not waive the privileges and immunities
+ * granted to it by virtue of its status as an intergovernmental organisation nor
+ * does it submit to any jurisdiction.
+
+ ******************************* LICENSE *******************************/
+
/*! \\file $object\Attributes.cc
- \\brief Implemtation of $object Attributes class.
+ \\brief Implementation of $object Attributes class.
+
This file is automatically generated.
Do Not Edit!
-
- Magics Team - ECMWF 2004
-
- Created: $string
-
+
+ Generated: $string
*/
-
#include "$object\Attributes.h"
#include "MagicsParameter.h"
-#include "Factory.h"
-#include "Translator.h"
-#include "XmlNode.h"
+#include "ParameterSettings.h"
using namespace magics;
@@ -431,27 +392,30 @@ EOF
my $magto = $to;
$magto = $magtype{$to} if $magtype{$to};
$from = $magtype{$from} if $magtype{$from};
- print "$to\n";
+ %xxx = {
+ "int" => "ParameterManager::getInt",
+ "float" => 1,
+ "string" => ParameterManager::getString,
+};
if ($constant eq "yes" )
{
- if ($direct{$to}) {
- print "$direct{$to}\n";
+ if ($translator{$to} ne '') {
+ print "$sep\n\t$member\_($translator{$to}(\"$default\"))";
}
else {
- print "$sep\n\t$member\_(Translator<$from, $magto>()(\"$default\"))";
+ print "$sep\n\t$member\_(MagTranslator<$from, $magto>().magics(\"$default\"))";
}
- }
+ }
else {
- if ($direct{$to}) {
- print "$direct{$to}\n";
+
+ if ($translator{$to} ne '') {
+ print "$sep\n\t$member\_($translator{$to}(\"$name\"))";
}
else {
- print "$sep\n\t$member\_(Translator<$from, $magto>().magics(\"$name\"))";
+ print "$sep\n\t$member\_(MagTranslator<$from, $magto>().magics(\"$name\"))";
}
}
$sep = ",";
-
-
}
print "\n";
print <<EOF;
@@ -474,15 +438,12 @@ EOF
my $magto = $to;
$magto = $magtype{$to} if $magtype{$to};
$from = $magtype{$from} if $magtype{$from};
- print "\n\tTranslator<string, $magto> $member;\n";
- print "\tset$method($member.magics(\"$name\"));\n";
-
-
+
+ print "\tset$method(MagTranslator<string, $magto>()(\"$name\"));\n";
}
print <<EOF;
}
-
$header
$object\Attributes$p\::~$object\Attributes()
{
@@ -491,7 +452,18 @@ $object\Attributes$p\::~$object\Attributes()
$header
EOF
$val = 0;
- my $code = "";
+ my $code = "";
+ my $nb = $#prefixs+1;
+
+ $code = "\tvector<string> prefix($nb);\n";
+ $j = 0;
+ for ($i = $nb; $i > 0; --$i) {
+ $code = "$code\tprefix[$j] = \"@prefixs[$i-1]\";\n";
+ ++$j;
+ }
+ $code = "$code\n";
+
+
foreach my $param (@{$current->{parameter_list}})
{
my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
@@ -506,54 +478,21 @@ EOF
$to = "$to<$tpl> " unless $tpl eq "";
my $magto = $to;
-
+
my $method = ucfirst $member;
$magto = $magtype{$to} if $magtype{$to};
$from = $magtype{$from} if $magtype{$from};
-
- if ( $basetype{$to} )
- {
- $code = "$code\tval = params.find(\"$name\");\n";
- $code = "$code\tif ( val != params.end() ) { \n";
- $code = "$code\t\tset$method(Translator<string, $magto>()(val->second));\n";
- $code = "$code\t}\n";
- }
- elsif ( $to eq 'Colour')
- {
- $code = "$code\tval = params.find(\"$name\");\n";
- $code = "$code\tif ( val != params.end() ) { \n";
- $code = "$code\t\t$magto* $member = Translator<string, $magto>()(val->second);\n";
- $code = "$code\t\tset$method($member);\n";
- #print "\t\t$member->set(params);\n";
-
- $code = "$code\t}\n";
-
- }
-
-
- if ( $xml ne "" && $xml ne $name) {
- #print "\t\tMagLog::info() << \"Parameter $name set to \" << val->second << \"\\n\"; \n";
if ( $basetype{$to} )
{
-
- $code = "$code\tval = params.find(\"$xml\");\n";
- $code = "$code\tif ( val != params.end() ) { \n";
- $code = "$code\t\tset$method(Translator<string, $magto>()(val->second));\n";
- $code = "$code\t}\n";
+ $code = "$code\tsetAttribute(prefix, \"$name\", $member\_, params);\n";
}
elsif ( $to eq 'Colour') {
- $code = "$code\tval = params.find(\"$xml\");\n";
- $code = "$code\tif ( val != params.end() ) { \n";
- $code = "$code\t\t$magto* $member = Translator<string, $magto>()(val->second);\n";
- $code = "$code\t\tset$method($member);\n";
- #print "\t\t$member->set(params);\n";
- $code = "$code\t}\n";
+ $code = "$code\tsetAttribute(prefix, \"$name\", $member\_, params);\n"
}
-
-
- }
-
+ else {
+ $code = "$code\tsetMember(prefix, \"$name\", $member\_, params);\n"
+ }
}
if ($code eq "") {
@@ -561,15 +500,9 @@ EOF
}
else {
print "void $object\Attributes$p\::set(const std::map<string, string>& params)\n{\n";
- print "\tstd::map<string, string>::const_iterator val;\n\n";
print "$code}\n"
}
-
-
-
-
-
print <<EOF;
$header
void $object\Attributes$p\::copy(const $object\Attributes& other)
@@ -600,21 +533,74 @@ EOF
}
else
{
- print "\tset$method(other.$member\_->clone());\n";
+ print "\t$member\_ = auto_ptr<$to>(other.$member\_->clone());\n";
}
print "";
}
- print <<EOF;
+print <<EOF;
}
$header
+bool $object\Attributes$p\::accept(const string& node)
+{
+EOF
+ print "\tif ( magCompare(node, \"$tag\") )";
+ print "\n\t\treturn true;\n";
+ foreach my $param (@{$current->{parameter_list}}) {
+ my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
+ next if $todo eq 'no';
+ my $to = $current->{parameter}->{$param}->{attributes}->{to};
+ next if $basetype{$to};
+ next if $classtype{$to};
+ my $member = $current->{parameter}->{$param}->{attributes}->{member};
+ my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
+ $to = "$to<$tpl> " unless $tpl eq "";
+ my $magto = $to;
+ my $method = ucfirst $member;
+ $magto = $magtype{$to} if $magtype{$to};
+ print "\n\tif ( acceptNode(node, $member\_) )\n";
+ print "\t\treturn true;\n";
+ }
+
+print <<EOF;
+ return false;
+}
+$header
void $object\Attributes$p\::set(const XmlNode& node)
{
- set(node.attributes());
+ if ( this->accept(node.name()) == false )
+ return;
EOF
+ if ( $tag ne '') {
+ print "\n\tif ( magCompare(node.name(), \"$tag\") )";
+ print "\n\t\tset(node.attributes());";
+ print "\n\telse {";
+ foreach my $param (@{$current->{parameter_list}}) {
+ my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
+ next if $todo eq 'no';
+ my $to = $current->{parameter}->{$param}->{attributes}->{to};
+ next if $basetype{$to};
+ next if $classtype{$to};
+ my $member = $current->{parameter}->{$param}->{attributes}->{member};
+ my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
+ $to = "$to<$tpl> " unless $tpl eq "";
+ my $magto = $to;
+ my $method = ucfirst $member;
+ $magto = $magtype{$to} if $magtype{$to};
+
+ print "\n\t\tsetMember(node.name(), $member\_, node);";
+
+
+ }
+ print "\n\t}";
+ }
+ else {
+ print "\n\tset(node.attributes());";
+ }
+
if ($xml_data ne '') {
print "\n\tfor (XmlNode::DataIterator data = node.firstData(); data != node.lastData(); ++data)\n";
print "\t\tsetXmlData(*data);\n";
@@ -633,17 +619,9 @@ EOF
my $magto = $to;
my $method = ucfirst $member;
$magto = $magtype{$to} if $magtype{$to};
-
- print "\t\ttry {\n";
- print "\t\t\t$magto* $member = Translator<string, $magto>()((*elt)->name());\n";
- print "\t\t\t$member->set(*(*elt));\n";
- print "\t\t\tset$method($member);\n";
- print "\t\t}\n";
- print "\t\tcatch (NoFactoryException& e) {}\n";
-
+
+ print "\t\tsetMember((*elt)->name(), $member\_, *(*elt)); \n";
}
-
-
print <<EOF;
}
@@ -671,69 +649,46 @@ EOF
print "\tout << \"$sep$member = \" << $print;\n";
$sep = ", ";
-
- }
-
+ }
print "\tout << \"]\" << \"\\n\";\n";
print "}\n\n";
- print <<EOF;
+
+ print <<EOF;
$header
-void $object\Attributes$p\::toxml(ostream& out, const string& tag, int tabs) const
+void $object\Attributes$p\::toxml(ostream& out) const
{
- string tab;
- for ( int t = 0; t < tabs; t++) tab = tab + "\t";
-
- out << tab << "<" << tag << "\\n";
+ out << \"\\\"$tag\\\"\";
EOF
- $sep = " ";
- my $calls = "";
foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
+ {
+ my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
+ next if $todo eq 'no';
my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $default = $current->{parameter}->{$param}->{attributes}->{default};
my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $from = $current->{parameter}->{$param}->{attributes}->{from};
my $to = $current->{parameter}->{$param}->{attributes}->{to};
my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- my $xml = $current->{parameter}->{$param}->{attributes}->{xml};
- $xml = $name if $xml eq '';
- my $xml_data = $current->{attributes}->{xml_data};
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
- my $method = ucfirst $member;
- $magto = $magtype{$to} if $magtype{$to};
- $from = $magtype{$from} if $magtype{$from};
- if ( $basetype{$to} )
+
+ $to = "$to<$tpl> " unless $tpl eq "";
+ if ( $basetype{$to} )
{
- print "\tout << tab << \"\\t$xml = \\\'\" << $member\_ << \"\\\'\\n\";\n";
- }
- elsif ( $classtype{$to} ) {
- print "\tout << tab << \"\\t$xml = \\\'\" << *$member\_ << \"\\\'\\n\";\n";
+ print "\t out << \", \\\"$name\\\":\";\n";
+ print "\t niceprint(out,$member\_);\n";
}
- else {
- $calls = "$calls \t$member\_->toxml(out, tabs+1);\n";
-
+ elsif ( $classtype{$to} )
+ {
+ print "\t out << \", \\\"$name\\\":\";\n";
+ print "\t niceprint(out, *$member\_);\n";
+ }
+ else
+ {
+ print "\t out << \", \\\"$name\\\":\";\n";
+ print "\t $member\_->toxml(out);\n";
}
-
-
-
- print "";
-
}
- print "\tout << tab << \">\";\n\n";
- print $calls;
-
- print "\n\tout << tab << \"</\" << tag << \">\\n\";\n";
+ print "}\n";
-
-
-
- print "}\n\n";
-
foreach my $param (@{$current->{parameter_list}})
{
my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
@@ -744,19 +699,13 @@ EOF
my $default = $current->{parameter}->{$param}->{attributes}->{default};
my $migration = $current->{parameter}->{$param}->{migration}->{data};
$from = $magtype{$from} if $magtype{$from};
-
-
+
$default = "\"$default\"" if $quote{$from} ;
print <<EOF
static MagicsParameter<$from> $name("$name", $default, "$migration");
EOF
-
- }
-
-
-
-
+ }
foreach my $param (@{$current->{parameter_list}})
{
@@ -786,20 +735,27 @@ EOF
my $xml = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{xml};
my $base = $current->{parameter}->{$param}->{attributes}->{to};
my $templates = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{template};
+ my @fortrans = split("/", $fortran);
if ($template eq "") {
- print "static SimpleObjectMaker<$class, $base> $fortran\_$class(\"$fortran\");\n" if $fortran ne "";
- print "static SimpleObjectMaker<$class, $base> $xml\_$class(\"$xml\");\n" if $xml ne "" && $xml ne $fortran;
+ for my $o (@fortrans) {
+ $n = $o;
+ $n =~ s/://;
+
+
+ print "static SimpleObjectMaker<$class, $base> $n\_$class(\"$o\");\n" if $o ne "";
+ print "static SimpleObjectMaker<$class, $base> $xml\_$class(\"$xml\");\n" if $xml ne "" && $xml ne $fortran;
+ }
}
else {
my @templates = split("/", $template);
for my $t (@templates) {
- print "static SimpleObjectMaker<$class<$t>, $base<$t> > $fortran\_$class\_$t(\"$fortran\");\n" if $fortran ne "";
- print "static SimpleObjectMaker<$class<$t>, $base<$t> > $xml\_$class\_$t(\"$xml\");\n" if $xml ne "" && $xml ne $fortran;
+ for my $o (@fortrans) {
+
+ print "static SimpleObjectMaker<$class<$t>, $base<$t> > $o\_$class\_$t(\"$o\");\n" if $o ne "";
+ print "static SimpleObjectMaker<$class<$t>, $base<$t> > $xml\_$class\_$t(\"$xml\");\n" if $xml ne "" && $xml ne $fortran;
+ }
}
}
}
-
}
}
-
-
diff --git a/tools/xml2cc.pl.workshop b/tools/xml2cc.pl.workshop
index e0471c1..1039af4 100644
--- a/tools/xml2cc.pl.workshop
+++ b/tools/xml2cc.pl.workshop
@@ -386,14 +386,11 @@ EOF
print <<EOF;
/*! \\file $object\Attributes.h
- \\brief Implemtation of $object Attributes class.
+ \\brief Implementation of $object Attributes class.
Automatically generated on $string
Do Not Edit!
-
- Magics Team - ECMWF 2004
-
+
Created: $string
-
*/
diff --git a/tools/xml2cc_new.pl b/tools/xml2cc_new.pl
deleted file mode 100755
index b9ec94f..0000000
--- a/tools/xml2cc_new.pl
+++ /dev/null
@@ -1,792 +0,0 @@
-#!/usr/bin/perl
-# (C) Copyright 1996-2016 ECMWF.
-#
-# This software is licensed under the terms of the Apache Licence Version 2.0
-# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
-# In applying this licence, ECMWF does not waive the privileges and immunities
-# granted to it by virtue of its status as an intergovernmental organisation nor
-# does it submit to any jurisdiction.
-
-
-use XML::Parser;
-use Time::localtime;
-
-my $file = shift;
-my $dir = shift;
-my $nosubdir = shift;
-
-my $Author="MagicsTeam";
-my $ecmwf="http://wms.ecmwf.int";
-my $info = {};
-my $element = {};
-
-
-my %basetype = (
- "int" => 1,
- "float" => 1,
- "string" => 1,
- "bool"=>1,
- "floatarray" =>1,
- "stringarray" => 1,
- "intarray" => 1,
- "longintarray" => 1,
- "LineStyle" =>1,
- "ListPolicy" =>1,
- "Hemisphere" =>1,
- "ArrowPosition" => 1,
- "AxisAutomaticSetting" => 1,
- "Justification" => 1,
- "Position" => 1,
- "DisplayType" => 1,
- "OpenGLDriverObserverPtr" => 1,
- "Widget" =>1,
- "cairo_t*" =>1,
- "QWidget*" =>1,
- "QGraphicsScene*" => 1,
- "Matrix" => 1,
- "GribHandlePtr" =>1,
-);
-
-my %translator = (
- "int" => "ParameterManager::getInt",
- "float" => "ParameterManager::getDouble",
- "string" => "ParameterManager::getString",
- "stringarray" => "ParameterManager::getStringArray",
- "bool" => "ParameterManager::getBool",
- "doublearray" => "ParameterManager::getDoubleArray",
- "floatarray" => "ParameterManager::getDoubleArray",
- "intarray" => "ParameterManager::getIntArray",
- "longintarray" => "ParameterManager::getLongIntArray"
-
-);
-my %magtype = (
- "float" =>'double',
-);
-my %consttype = (
- "string" =>'const string&',
-);
-
-my %classtype = (
- "Colour" =>1,
- "DateTime" =>1,
- "Path" => 1
-);
-
-my %arraytype = (
- "floatarray" => "atof(data)",
- "stringarray" => "data",
- "intarray" => "atoi(data)",
- "longintarray" => "atoi(data)",
-);
-
-my %quote = (
- "string" => 1,
-);
-
-sub parse
-{
- my $def = shift;
- my $node = shift;
-
- while ( defined ( $element = shift @{ $node } ) )
- {
-
- my $child = shift @{ $node };
- if ( ref $child )
- {
- my $attr = \%{ shift @{ $child } };
- my $name = $attr->{name};
-
- if ($name ne "")
- {
-
- $def->{$element}->{$name} = {};
- my $list = $element . "_list";
- push( @{$def->{$list}}, $name);
- foreach my $a (keys %{$attr})
- {
- $def->{$element}->{$name}->{attributes}->{$a} = $attr->{$a};
-
- }
- parse($def->{$element}->{$name}, $child);
-
- }
- else
- {
- $def->{$element} = {};
- foreach my $a (keys %{$attr})
- {
- $def->{$element}->{attributes}->{$a} = $attr->{$a};
-
- }
- parse($def->{$element}, $child);
- }
- }
- else
- {
-
- $def->{data} = $child;
- }
- }
-}
-
-
-my $license_file = '../../LICENSE_for_source_files'; # Name the file
-open(INFO, $license_file); # Open the file
-my @license = <INFO>; # Read it into an array
-close(INFO); # Close the file
-
-
-my $xml= new XML::Parser(Style=>"Tree");
-
-parse ($info, $xml->parsefile($file));
-
-foreach my $object (keys %{$info->{magics}->{class}})
-{
- $current = $info->{magics}->{class}->{$object};
- $directory = $info->{magics}->{class}->{$object}->{attributes}->{directory};
- $tag = $info->{magics}->{class}->{$object}->{attributes}->{xmltag};
-
- my $location;
- if( defined $nosubdir and $nosubdir eq "nosubdir" ) {
- $location = $dir;
- }
- else {
- $location = "$dir/$directory";
- }
-
-######################################################
-##### Include file
-
- open STDOUT, ">$location/$object\Attributes.h";
-
- my $string = ctime();
- print <<EOF;
-/******************************* LICENSE *******************************
-
- at license
-
- ******************************* LICENSE *******************************/
-
-/*! \\file $object\Attributes.h
- \\brief Definition of $object Attributes class.
- \\author Meteorological Visualisation Section, ECMWF
-
- This file is automatically generated.
- Do Not Edit!
-
- Generated: $string
-*/
-
-
-#ifndef $object\Attributes_H
-#define $object\Attributes_H
-
-#include "magics.h"
-#include "ParameterManager.h"
-#include "Factory.h"
-
-
-EOF
- my $includes = {};
- my @impl=split(/\//, $current->{attributes}->{implements});
- my @prefixs=split(/\//, $current->{attributes}->{prefix});
-
- my @interfaces = (split(/\//, $current->{attributes}->{interface}), @impl);
-
- foreach $i (@impl)
- {
-
- print "#include \"$i.h\"\n";
- }
-
- my $parent ='';
- my $sep = ":";
- foreach $interface (@interfaces)
- {
-
- $parent="$parent$sep public $interface";
- $sep = ", "
- }
-
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $include = $current->{parameter}->{$param}->{attributes}->{include};
-
- if ( !$basetype{$to} )
- {
- if ($include eq "" ) {
- $includes->{"$to.h"} = "ok";
- }
- else
- {
- $includes->{$include} = "ok";
- }
- }
-
- }
- foreach my $include (keys %{$includes} )
- {
- print "#include \"$include\"\n";
- }
-
- print "\n";
-
-
- my $template = $current->{attributes}->{template_attributes};
- my $class = "$object\Attributes";
- my $line = "";
- if ( $template ne "" ) {
- $line = "template <class $template>";
- $class = "$object\Attributes<$template>";
-
- }
-
- print <<EOF;
-namespace magics {
-
-class XmlNode;
-
-
-$line
-class $object\Attributes $parent
-{
-public:
-// -- constructor
- $object\Attributes();
-
-// -- destructor
- virtual ~$object\Attributes();
-
- virtual void set(const std::map<string, string>&);
- virtual void set(const XmlNode&);
- virtual void copy(const $object\Attributes&);
- virtual bool accept(const string&);
-
- void setTag(const string& tag) { tag_ = tag; }
-
-EOF
-
-
-
-
-print <<EOF;
-
-
-public:
- // -- method
- virtual void print(ostream&) const;
- virtual void toxml(ostream& out) const;
- // -- members:
- string tag_;
-EOF
-
- print "\tstring $xml_data\_;\n" unless $xml_data eq '';
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- $to = "$to<$tpl> " unless $tpl eq "";
-
- if ( $magtype{$to} )
- {
- print "\t$magtype{$to} $member\_;\n";
- }
- elsif ( $basetype{$to} )
- {
- print "\t$to $member\_;\n";
- }
- else
- {
- print "\tauto_ptr<$to> $member\_;\n";
- }
- }
-
-print <<EOF;
-
-private:
-
- friend ostream& operator<<(ostream& s,const $class& p)
- { p.print(s); return s; }
-};
-
-} // namespace magics
-EOF
-
- if ( $template ne "" ) {
- print "#include \"$object\Attributes.cc\" \n";
- }
-
- print "\n#endif\n";
-
- close STDOUT;
-
-##### Include file
-######################################################
-
-######################################################
-##### Source file
-
- open STDOUT, ">$location/$object\Attributes.cc";
-
- print <<EOF;
-/******************************* LICENSE *******************************
-
- at license
-
- ******************************* LICENSE *******************************/
-
-/*! \\file $object\Attributes.cc
- \\brief Implementation of $object Attributes class.
- \\author Meteorological Visualisation Section, ECMWF
-
- This file is automatically generated.
- Do Not Edit!
-
- Generated: $string
-*/
-
-#include "$object\Attributes.h"
-#include "MagicsParameter.h"
-#include "Factory.h"
-#include "MagTranslator.h"
-#include "XmlNode.h"
-#include "ParameterSettings.h"
-
-
-using namespace magics;
-
-EOF
- $header = "";
- $p = "";
- if ( $template ne "" ) {
- $header = "template <class $template>";
- $p = "<P>";
- }
-
- my $count = 0;
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- next if $todo eq 'no';
- next if $tpl ne "";
- $count++;
- }
-
- my $subclass = ":";
- $subclass = "" if $count eq 0;
-
- print "$header\n$object\Attributes$p\::$object\Attributes()$subclass";
- my $sep = "";
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
-
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $default = $current->{parameter}->{$param}->{attributes}->{default};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $from = $current->{parameter}->{$param}->{attributes}->{from};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- my $constant= $current->{parameter}->{$param}->{attributes}->{constant};
- next if $tpl ne "";
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
- $magto = $magtype{$to} if $magtype{$to};
- $from = $magtype{$from} if $magtype{$from};
- %xxx = {
- "int" => "ParameterManager::getInt",
- "float" => 1,
- "string" => ParameterManager::getString,
-};
- if ($constant eq "yes" )
- {
- if ($translator{$to} ne '') {
- print "$sep\n\t$member\_($translator{$to}(\"$default\"))";
- }
- else {
- print "$sep\n\t$member\_(MagTranslator<$from, $magto>().magics(\"$default\"))";
- }
- }
- else {
-
- if ($translator{$to} ne '') {
- print "$sep\n\t$member\_($translator{$to}(\"$name\"))";
- }
- else {
- print "$sep\n\t$member\_(MagTranslator<$from, $magto>().magics(\"$name\"))";
- }
- }
- $sep = ",";
- }
- print "\n";
- print <<EOF;
-{
-EOF
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- next if $tpl eq "";
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $default = $current->{parameter}->{$param}->{attributes}->{default};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $from = $current->{parameter}->{$param}->{attributes}->{from};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $method = ucfirst $member;
-
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
- $magto = $magtype{$to} if $magtype{$to};
- $from = $magtype{$from} if $magtype{$from};
-
- print "\tset$method(MagTranslator<string, $magto>()(\"$name\"));\n";
- }
- print <<EOF;
-}
-
-
-$header
-$object\Attributes$p\::~$object\Attributes()
-{
-}
-
-$header
-EOF
- $val = 0;
- my $code = "";
- my $nb = $#prefixs+1;
-
- $code = "\tvector<string> prefix($nb);\n";
- $j = 0;
- for ($i = $nb; $i > 0; --$i) {
- $code = "$code\tprefix[$j] = \"@prefixs[$i-1]\";\n";
- ++$j;
- }
- $code = "$code\n";
-
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $default = $current->{parameter}->{$param}->{attributes}->{default};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $from = $current->{parameter}->{$param}->{attributes}->{from};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- my $xml = $current->{parameter}->{$param}->{attributes}->{xml};
-
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
-
- my $method = ucfirst $member;
- $magto = $magtype{$to} if $magtype{$to};
- $from = $magtype{$from} if $magtype{$from};
-
- if ( $basetype{$to} )
- {
- $code = "$code\tsetAttribute(prefix, \"$name\", $member\_, params);\n";
- }
- elsif ( $to eq 'Colour') {
- $code = "$code\tsetAttribute(prefix, \"$name\", $member\_, params);\n"
- }
- else {
- $code = "$code\tsetMember(prefix, \"$name\", $member\_, params);\n"
- }
- }
-
- if ($code eq "") {
- print "void $object\Attributes$p\::set(const std::map<string, string>&)\n{\n}\n";
- }
- else {
- print "void $object\Attributes$p\::set(const std::map<string, string>& params)\n{\n";
- print "$code}\n"
- }
-
-
-
-
-
-
-print <<EOF;
-$header
-void $object\Attributes$p\::copy(const $object\Attributes& other)
-{
-EOF
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $default = $current->{parameter}->{$param}->{attributes}->{default};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $from = $current->{parameter}->{$param}->{attributes}->{from};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- my $xml = $current->{parameter}->{$param}->{attributes}->{xml};
- my $xml_data = $current->{attributes}->{xml_data};
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
- my $method = ucfirst $member;
- $magto = $magtype{$to} if $magtype{$to};
- $from = $magtype{$from} if $magtype{$from};
-
- if ( $basetype{$to} )
- {
- print "\t$member\_ = other.$member\_;\n";
- }
- else
- {
- print "\t$member\_ = auto_ptr<$to>(other.$member\_->clone());\n";
- }
-
- print "";
-
-
- }
-print <<EOF;
-}
-
-$header
-bool $object\Attributes$p\::accept(const string& node)
-{
-EOF
- print "\tif ( magCompare(node, \"$tag\") )";
- print "\n\t\treturn true;\n";
- foreach my $param (@{$current->{parameter_list}}) {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- next if $basetype{$to};
- next if $classtype{$to};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
- my $method = ucfirst $member;
- $magto = $magtype{$to} if $magtype{$to};
- print "\n\tif ( acceptNode(node, $member\_) )\n";
- print "\t\treturn true;\n";
- }
-
-print <<EOF;
- return false;
-}
-$header
-void $object\Attributes$p\::set(const XmlNode& node)
-{
- if ( this->accept(node.name()) == false )
- return;
-EOF
- if ( $tag ne '') {
- print "\n\tif ( magCompare(node.name(), \"$tag\") )";
- print "\n\t\tset(node.attributes());";
- print "\n\telse {";
- foreach my $param (@{$current->{parameter_list}}) {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- next if $basetype{$to};
- next if $classtype{$to};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
- my $method = ucfirst $member;
- $magto = $magtype{$to} if $magtype{$to};
-
- print "\n\t\tsetMember(node.name(), $member\_, node);";
-
-
- }
- print "\n\t}";
- }
- else {
- print "\n\tset(node.attributes());";
- }
-
- if ($xml_data ne '') {
- print "\n\tfor (XmlNode::DataIterator data = node.firstData(); data != node.lastData(); ++data)\n";
- print "\t\tsetXmlData(*data);\n";
- }
- print "\n";
- print "\tfor (XmlNode::ElementIterator elt = node.firstElement(); elt != node.lastElement(); ++elt) {\n";
- foreach my $param (@{$current->{parameter_list}}) {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- next if $basetype{$to};
- next if $classtype{$to};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
- $to = "$to<$tpl> " unless $tpl eq "";
- my $magto = $to;
- my $method = ucfirst $member;
- $magto = $magtype{$to} if $magtype{$to};
-
- print "\t\tsetMember((*elt)->name(), $member\_, *(*elt)); \n";
-
-
- }
-
-
-
-print <<EOF;
- }
-}
-$header
-void $object\Attributes$p\::print(ostream& out) const
-{
- out << "$object\Attributes[";
-EOF
- $sep = "";
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
-
-
- $to = "$to<$tpl> " unless $tpl eq "";
- $print = "$member\_";
- $print = "*$member\_" unless $basetype{$to} ;
-
- print "\tout << \"$sep$member = \" << $print;\n";
-
- $sep = ", ";
-
- }
-
- print "\tout << \"]\" << \"\\n\";\n";
- print "}\n\n";
-
- print <<EOF;
-$header
-void $object\Attributes$p\::toxml(ostream& out) const
-{
- out << \"\\\"$tag\\\"\";
-EOF
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $to = $current->{parameter}->{$param}->{attributes}->{to};
- my $tpl = $current->{parameter}->{$param}->{attributes}->{template};
-
-
- $to = "$to<$tpl> " unless $tpl eq "";
- if ( $basetype{$to} )
- {
- print "\t out << \", \\\"$name\\\":\";\n";
- print "\t niceprint(out,$member\_);\n";
- }
- elsif ( $classtype{$to} )
- {
- print "\t out << \", \\\"$name\\\":\";\n";
- print "\t niceprint(out, *$member\_);\n";
- }
- else
- {
- print "\t out << \", \\\"$name\\\":\";\n";
- print "\t $member\_->toxml(out);\n";
- }
-
-
-
- }
- print "}\n";
-
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
- my $name = $current->{parameter}->{$param}->{attributes}->{name};
- my $member = $current->{parameter}->{$param}->{attributes}->{member};
- my $from = $current->{parameter}->{$param}->{attributes}->{from};
- my $default = $current->{parameter}->{$param}->{attributes}->{default};
- my $migration = $current->{parameter}->{$param}->{migration}->{data};
- $from = $magtype{$from} if $magtype{$from};
-
-
- $default = "\"$default\"" if $quote{$from} ;
-
- print <<EOF
-static MagicsParameter<$from> $name("$name", $default, "$migration");
-EOF
-
- }
-
-
-
-
-
- foreach my $param (@{$current->{parameter_list}})
- {
- my $todo = $current->{parameter}->{$param}->{attributes}->{implemented};
- next if $todo eq 'no';
-
-
- foreach my $option (@{$current->{parameter}->{$param}->{option_list}}) {
- my $include = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{include};
- my $template = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{template};
- my @templates = split("/", $template);
- foreach my $t (@templates) {
- $includes_static->{$param}->{"$t.h"} = "$t.h";
- }
- $includes_static->{$param}->{$include} = $include unless $include eq "";
- }
- foreach my $include (keys %{$includes_static->{$param}})
- {
- print "#include \"$include\"\n";
- }
-
- foreach my $option (@{$current->{parameter}->{$param}->{option_list}}) {
- my $class = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{name};
- my $include = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{include};
- my $fortran = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{fortran};
- my $template = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{template};
- my $xml = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{xml};
- my $base = $current->{parameter}->{$param}->{attributes}->{to};
- my $templates = $current->{parameter}->{$param}->{option}->{$option}->{attributes}->{template};
- my @fortrans = split("/", $fortran);
- if ($template eq "") {
- for my $o (@fortrans) {
- print "static SimpleObjectMaker<$class, $base> $o\_$class(\"$o\");\n" if $o ne "";
- print "static SimpleObjectMaker<$class, $base> $xml\_$class(\"$xml\");\n" if $xml ne "" && $xml ne $fortran;
- }
- }
- else {
- my @templates = split("/", $template);
- for my $t (@templates) {
- for my $o (@fortrans) {
- print "static SimpleObjectMaker<$class<$t>, $base<$t> > $o\_$class\_$t(\"$o\");\n" if $o ne "";
- print "static SimpleObjectMaker<$class<$t>, $base<$t> > $xml\_$class\_$t(\"$xml\");\n" if $xml ne "" && $xml ne $fortran;
- }
- }
- }
- }
- }
-}
-
-
diff --git a/tools/xml2mv.pl b/tools/xml2mv.pl
index 2eb4306..f16dc58 100755
--- a/tools/xml2mv.pl
+++ b/tools/xml2mv.pl
@@ -289,14 +289,11 @@ EOF
print <<EOF;
/*! \\file $object\Wrapper.h
- \\brief Implemtation of $object Wrapper class.
+ \\brief Implementation of $object Wrapper class.
Automatically generated on $string
Do Not Edit!
-
- Magics Team - ECMWF 2004
-
+
Created: $string
-
*/
#include "MagRequest.h"
@@ -547,8 +544,11 @@ EOF
}
else {
print "\n#include \"$class\Wrapper.h\"\n";
- for my $o (@fortrans) {
- print "static SimpleObjectMaker<$class\Wrapper, $base\Wrapper> $object\_$o\_$class\_w(\"$o\");\n" if $o ne "";
+ for my $o (@fortrans) {
+ $n = $o;
+ $n =~ s/://;
+ print "static SimpleObjectMaker<$class, $base> $n\_$class(\"$n\");\n" if $o ne "";
+ print "static SimpleObjectMaker<$class\Wrapper, $base\Wrapper> $object\_$n\_$class\_w(\"$o\");\n" if $o ne "";
}
if ($xml ne "") {
if ($xml ne $fortran) {
--
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