   +---------------------------------------------------------------------+
   |                                                                     |
   |          This records changes since 4.0 was released.               |
   |             It is intended mainly for developers.                   |
   |                                                                     |
   |    Note: Magics, Emoslib, Mars & GRIB_API related changes are       |
   |          _not_ recorded here.                                       |
   |                                                                     |
   |         Also contains Metview update history at ECMWF.              |
   |                                                                     |
   |                     Newest items are at the top                     |
   |                                                                     |
   +---------------------------------------------------------------------+
   +---------------------------------------------------------------------+

268fi Hovmoeller Vertical application: added parameter Vertical_Scaling

   .The Hovmoeller Vertical application can now produce a logarithmic axis
    (defaul is linear).

   .files: Hovmoeller/MHovmoellerViewDef,MHovmoellerViewRules,
           uPlot/HovmoellerView.cc.*
   .date: 2013-09-27

267fi Data applications: updated the automatic Title mechanism

   .All data applications that return a netCDF file (such as Hovmoeller and
    XSection) no longer send a Title request. This information is now encoded
    in the netCDF file, so Magics can now produce an automatic title.

   .files: Hovmoeller/HovToolkit.*, XSection/Average.cc, Xsect.*, CrossS.cc,
           Vprofile.*
   .date: 2013-09-04

266fi uPlot/DataView: now can overlay other data

   .It is possible now to overlay an input visualiser.

   .files: uPlot/CommonXSectView.cc
   .date: 2013-09-04

265fi uPlot: fixed problem of calling external modules

   .The external modules (XSection, Hovmoeller, ...) were called asynchronously‎.
    This was causing communication problems because uPlot needs to wait for all
    requests to be ready before sending them to Magics. Now, the external modules
    are called synchronously.

   .files: XSection/Average.cc, libMetview/MvServiceTask.*,
           uPlot/CommonXSectView.*, uPlotBatchApp.cc
   .date: 2013-09-03

264fi Hovmoeller: clear separation between Data and View

   .The Data modules return netCDF file and their user interface do not have
    any visualisation parameter related.

   .files: Hovmoeller/all files in this directory were updated and new files
           were also created.
           uPlot/HvmoellerView.*, Makefile.am, uPlotManager.cc,
           etc/uPlotTable, icons/Makefile.am
   .date: 2013-08-29

263fi VProfileView: fixed issue when using option Log to Vertical Scaling 

   .Option Log was not activated.

   .files: XSection/Vprofile.*,Xsect.*, uPlot/CommonXSectView.*
   .date: 2013-08-29

262fi XSection/VProfile/Average: clear separation between Data and View

   .The Data modules return netCDF file and their user interface do not have
    any visualisation parameter related.

   .files: XSection/Average.*,CrossS.*,Makefile.am,MvXsectFrame.*,Vprofile.*,Xsect.*,
           libMetview/MvGrid.cc, uPlot/CommonXSectView.cc
   .date: 2013-07-24

261fi XSection/VerticalProfile: introduce RTTOV variables

   .Three new variables were added to the user interface as well as several
    derived fields were added to the netcdf file. These new variables are only
    generated if the RTTOV option is selected, which is also a new parameter.

   .files: XSection/MXSectionCommonDef, MvProfileDef, MvProfileViewDef, MXAverageDef,
           MXAverageViewDef, Xsect.*, MvXsectFrame.*
   .date: 2013-06-20

260fi XSection: remove new parameter VERTICAL_LEVEL_TYPE.

   .This will provide more backwards compatibility with Metview 3

   .files: XSection/MXSectionCommonDef, MvProfileDef, MvProfileViewDef, MXAverageDef,
           MXAverageViewDef, Xsect.*, MvXsectFrame.*
   .date: 2013-05-30

259fi uPlot-AnnotationView: Error to generate multiple Views

   .Function Drop was not handling the PLOTSUPERPAGE request.

   .files: uPlot/AnnotationView.cc
   .date: 2013-04-26

258fi Macro: Pool and Observation Filter relationship problem

   .This sequence of commands was crashing uPlot:
       bufr = retrieve(...)
       geo  = obsfilter(...)
       plot(geo)
    because Macro (InPool class) was deleting the file 'geo' before the plotting
    was performed. In fact, InPool was called to delete file 'bufr' but it was also
    deleting all the temporary files related to 'bufr' (including 'geo'). This behaviour
    was commented out, but there is a need to monitor it until it is sure that there
    is no side effect.

   .files: Macro/value.cc Macro/include/node.h
   .date: 2013-04-23

257fi uPlot: translate PCOAST to MCOAST

   .PCOAST icon is now translated to MCOAST.

   .files: uPlot/MagicsTranslator.cc
   .date: 2013-04-19

256fi XSection, Average, VerticalProfile: introduced the Metview 3 icons equivalents.

   .Metview 3 icons Cross Section, Average and Vertical Profile, both DATA and VIEW,
    are now available in Metview 4 for backwards compatiblity. They are not fully backward
    compatible, since the VIEW and DATA interfaces have been reviewd in Metview 4.

   .files: various files in etc, icons, uPlot, XSection
   .date: 2013-04-18

255ir Lambert grids: nearest_gridpoint returns the first value in the grid 

   .This is because an update in the Lambert code corresponding to a new
    GRIB_API version (in 2010) was not completely copied from Metview 3
    to Metview 4; latitude values in degrees were not being multiplied by
    1000 and so the algorithm did not work.

   .files: libMetview/MvGrid.cc
   .date: 2013-04-03

254ir Gaussian grids: construction of MvField can be slow 

   .This is because the GRIB_API function grib_get_gaussian_latitudes() is
    expensive, and we were calling it for each Gaussian field we loaded.
    This is not necessary because we can cache the result for each grid size.

   .files: libMetview/MvGrid.[cc,h]
   .date: 2013-04-03

253ir Meteogram: added new option: '15 days epsgram with climate'

   .Functionality was already in Magics; just added the interface in Metview

   .files: Meteogram/MetPlus.cc,MetPlusDef
   .date: 2013-03-27

252ir Macro: improved deletion of temporary GRIB files

   .The issue where temporary GRIB files which were passed to
    icon functions were not subsequently being deleted has been fixed.

   .files: Macro/value.[cc,h],grib.cc
   .date: 2013-03-25

251fi XSection, MXAverage, VerticalProfile: first 'new' version implemented

   .This version is not backwards compatible. The objective is to provide a
    clear user interface between the View and the correspondent Data application.

   .files: various files in etc, icons, uPlot, XSection
   .date: 2013-03-20

250ir Macro: removed _UNSET parameter from expanded requests

   .We do not use this parameter, and it can increase the size of a
    request, which curently has an impact on uPlotBatch when plotting
    hundreds of page.

   .files: Macro/request.cc
   .date: 2013-03-04

249fi AnnotationView: first version implemented

   .This new View groups together previous three Metview 3 Views: TextView, EmptyView and
    ImportView. This version implements the TextView and EmptyView.

   .files: various files in etc, icons, uPlot
   .date: 2013-02-20

248ir Macro: user-defined functions take precedence over built-in functions (Mark Rodwell)

   .User-defined functions were being overlooked if they had the same name as
    a built-in function. Now, functions defined in a macro (or in an include file)
    are found before the built-in functions are searched. This does NOT include
    functions in the Macro search path (because this would involve either lots
    of file accesses or else some restructuring of the code).

   .files: Macro/code.cc,include/macro.h
   .date: 2013-02-12

247fi Velstr: fix test of PARAM value

   .Updated the test to check if the input data is Vorticity or Divergence.
    Now, it works for grib1 and grib2 data.

   .files: Velstr/velstr-exFortran.cc
   .date: 2013-01-31

246ir SCM: added SCM_DATA_TITLE and SCM_COMPARISON_DATA_TITLE to SCM Visualiser icon

   .New parameters to allow the user to provide custom legend entries.

   .files: Scm/various
   .date: 2013-01-31

245ir SCM: added SCM Visualiser module

   .Still needs some work, but basic functionality is there.

   .files: Scm/various
   .date: 2013-01-22

244fi Vertical Profile: View was ignoring user-supplied axis icons

   .Now the output plotting contains the user-supplied axis definition

   .files: etc/uPlotTable, uPlot/DataBuilder.cc, ObjectList.*, Page.cc,
           PlotPageBuilder.cc, Root.cc, VertProfView.cc
   .date: 2013-01-11

243ir Cross Section: added y-axis title

   .Added a default y-axis title which indicates whether we are plotting
    on pressure levels or model levels.

   .files: XSection/XSect.cc
   .date: 2013-01-08

242ir Cross Section: orography curve was not being drawn when LBSP supplied

   .Now the orography curve is drawn when LNSP is supplied.

   .files: XSection/XSect.cc,MvXsectFrame.[cc,h]
   .date: 2013-01-04

241ir uPlot: superpage settings such as 'portrait' were not being used

   .In order to obtain a portrait plot, the user had to set
    custom_width and custom_height, and in fact they had to be set
    to something very slightly different from the proper values
    for A4 so that they were not removed by EXPAND_NO_DEFAULT.
    The solution was to change the Mars expand flags from 
    EXPAND_NO_DEFAULT to 0 for the PlotSuperpageFunction request.

   .files: Macro/request.cc
   .date: 2012-12-18

240ir Macro: added new function dimension_names(netcdf)

   .New Macro function list dimension_names(netcdf) which returns
    a list of the dimension names for the current netCDF variable.

   .files: Macro/netcdf.cc
   .date: 2012-12-10

239fi Divrot: fix test of PARAM value

   .Updated the test to check if the input data is Vorticity or Divergence.

   .files: Divrot/divrot-exFortran.cc
   .date: 2012-11-20

238ir Added Streamlines option to Wind Plotting icon

   .Streamlines for wind fields have been added to Magics, so the
    option was added to Metview's Wind Plotting icon:
       WIND_FIELD_TYPE = STREAMLINES

   .files: share/metview/etc/MWINDDef
   .date: 2012-11-09

237ir Improved efficiency of some fieldset routines

   .After noticing that Average Data was taking a long time to compute
    its results, it turned out that the culprit was the repeated calling
    of GRIB_API functions to retrieve header information. The calls
    specifically implicated for Average Data were replaced with versions
    which cache the information. The result is a large improvement in
    speed of the Average Data module (e.g. 37 seconds down to 1.6 seconds).
    It should also improve some other functionality, such as the 'batch'
    calling of nearest_gridpoint(), but this has not been measured.

   .files: version.sh
   .date: 2012-11-06

236sk New environment variable: METVIEW_EXTRA_GRIB_DEFINITION_PATH

   .Metview now understands a new environment variable which users can
    use to specify a directory where custom GRIB_API definition files
    are stored. METVIEW_EXTRA_GRIB_DEFINITION_PATH should be set
    before starting Metview.

   .files: scripts/metview_base,metview_help uPlot/uPlotService.cc libUtil/GribMetaData.cc
   .date: 2012-08-01

235ir Macro: added new function grib_get(fieldset, list, string)

   .New Macro function grib_get(fieldset, list, string) for
    the efficient retreival of multiple GRIB keys from a fieldset.
    The keys are provided as a list for the second argument; by default
    they will be retreived as strings, but their type can be specified
    by adding a modifier to their names, following the convention used
    by grib_ls where the key name is followed by a colon and then one or
    two characters which specify the type (s=string, l=long, d=double,
    la=long array, da=double array). For example, the key 'centre' can
    be retreived as a string with 'centre' or 'centre:s', or as a number
    with 'centre:l'.
    The result is always a list of lists; by default, or if the optional
    third argument is 'field', the result will be grouped by field,
    containing one list per field, each of these lists containing one
    element per key; if the optional third parameter is 'key', the result
    will be grouped by key, containing one list per key, each of these
    lists containing one element per field.
    Example - the following lines of Macro code on a particular 6-field fieldset:
      print (grib_get (data, ['editionNumber', 'centre',   'level:s', 'step'], 'field'))
      print (grib_get (data, ['editionNumber', 'centre:l', 'level:s', 'step'], 'key'))
    produces this output:
     [[1,ecmf,1000,0],[1,ecmf,500,0],[1,ecmf,100,0],[1,ecmf,1000,48],[1,ecmf,500,48],[1,ecmf,100,48]]
     [[1,1,1,1,1,1],[98,98,98,98,98,98],[1000,500,100,1000,500,100],[0,0,0,48,48,48]]

   .files: Macro/grib.cc
   .date: 2012-10-25

234sk Added expression support for column variables in the ODB Visualiser

    .Previously the column variables in ODB Viusaliser could strictly take
     column names. Now arbitrary ODB expressions/functions can be used for
     them. E.g. by setting ODB_VALUE_VARIABLE to an_depar-fg_depar will result 
     in plotting of the difference between the analysis and first guess 
     departures. 

    .files: files in libUtil, libMvQtGui and Odb 
    .date: 2012-10-18


233fi Updated the scheme to trigger requests to be sent to Magics

   .This fix the problem of running Metview in batch mode when another Service
    was called. For example: AverageView + GribData. The application XSection was
    called to produce the netCDF file, but the uPlotBatch module was not waiting
    for it and was killing himself.

    .files: several files in uPlot
    .date: 2012-10-18

232sk Alphabetically sorted columns in the Data tab of the ODB examiner
    
    .The ODB columns in the Data tab of the ODB Examiner are now
     alphabetically sorted by default. 
    
    .files: various files in libMvQtGui
    .date: 2012-10-04


231sk Added show/hide columns option to the Data tab of the ODB examiner
    
    .The ODB columns in the Data tab of the ODB Examiner can now be hidden
    /shown.
    
    .files: various files in libMvQtGui
    .date: 2012-10-04

230sk Enabled ODB Visualiser to save additional columns to the resulting ODB 

    .A parameter called ODB_METADATA_VARIABLES was added to the ODB Visualiser.
     The columns specified here will be added to the ODB Visualiser's output
     on top of the lat/lon/value etc. columns. These extra columns can then be 
     examined in uPlot's new ODB data browser.	

    .files: Odb/OdbVisaliser.cc, OdbVisualiserDef
    .date: 2012-10-04
    
229sk Added an ODB data browser to uPlot
  
   .The Values panel in the Data tab of uPlot's sidebar now contains a value
    browser for ODB data. The ODB data appear in the same table format as in the ODB
    Examiner. The ODB columns can be hidden/shown and the their visibility status
    is saved between uPlot sessions. A data probe was also added to the interface. 
    By positioning the data probe to a given location in the plot the corresponding
    row will be highlighted in the data table. It also works vice versa: by selecting a 
    row in the data table the data probe will be automatically placed to the
    corresponding location in the plot.
     
    .files: various files in uPlot, libMvQtGui, Odb and images
    .date: 2012-10-04

228sk Reorganised sidebar's content in uPlot
  
   .The sidebar tabs in uPlot have been restructured. The Layers tab now only 
    contains the layer list and a new tab called Data was added for the layer
    data. By selecting the Data tab users are able to see metadata and data values
    associated with the selected layer. 
    
    .files: various files in uPlot, libMvQtGui and images
    .date: 2012-10-04

227ir Added the ability to shade the area between two curves to the Input Visualiser

   .This was already in Magics - we just needed to add the interface to Metview.
    The Input Visualiser now has a new mode, XY_AREA. The Graph Plotting
    icon has now opened up the line-plotting attributes when the mode is Area.
    See also changes submitted by Sylvie.

   .files: StdAppManager/StdAppManager.cc,InputVisualiserRules,InputVisualiserDef,
           share/metview/etc/MGRAPHRules.
   .date: 2012-10-05

226ir Cross Section producing an empty plot when given data in model levels with LNSP  (Elias Holm)

   .The resulting NetCDF visualiser request was asking for the LNSP
    field to be plotted instead of the data field. Additionally, the levels
    were 100 times what they should have been.

   .files: XSection/Xsect.cc,McXSectFrame.[cc,h]
   .date: 2012-10-02

225ir Cross Section producing an empty plot when transect line is of constant longitude  (Johannes Flemming)

   .Solution was to check whether X1==X2 and set latitude instead of
    longitude to be the X variable.

   .files: XSection/Xsect.cc
   .date: 2012-10-01

224ir ObsFilter was not working with Level=Occurrence  (Johannes Flemming)

   .When Level was set to Occurrence, the ObsFilter was returning all
    missing values. This was due to a small syntax error when this
    module had the Descriptors added as options for Level.

   .files: ObsFilter/ObsFilter.cc
   .date: 2012-09-28

223ir Improved the Display Window's Cursor Data for very small values

   .If a data value is very small, the cursor data will revert to
    scientific notation.

   .files: uPlot/MvQCursorData.[cc,h]
   .date: 2012-09-12

222ir Macro could not read macro files with the read() command

   .Now a macro can read('/path/to/macro') and obtain a list of strings
    in the same way as it can with a standard text file.

   .files: Macro/files.cc
   .date: 2012-08-16

221fi GribVectors: only showing the first plot

   .If the input fieldset contains more than one vector-field, uPlot was only
    showing the first plot.

   .files: uPlot/MagicsTranslator.cc, GribVectors/Vector.cc
   .date: 2012-08-13

220ir Installation: PKG_CONFIG_PATH was not being set correctly

   .The result was that Magics could often not be found during 'configure',
    but this was being hidden at ECMWF because it was being set additionally
    in configure.ecmwf. The problem was that the environment variable was
    being set, but not exported; now it is also exported.

   .files: configure.ac, configure.ecmwf
   .date: 2012-08-07

219ir Macro Editor: 'find/replace' now wrap around

   .When searching reaches the bottom (or top for a backwards search) of
    the file, it continues from the top (or bottom). This is not
    currently a user option, and is the only behaviour available.

   .files: MacroEditor/MacroEdit.[cc,h]
   .date: 2012-07-24

218ir Macro: fixed issue when reading floating-point netCDF attributes

   .Float and double attributes for netCDF variables were being cropped
    because they were being converted to text form in preparation for
    being put into a request (to be seen as a Macro definition variable).
    This was using the netCDF as_string() function to perform the
    conversion. This was however cropping the numbers quite harshly
    and removing many significant digits. This has now been over-ridden
    for the case of converting float/double attributes to strings.

   .files: libMvNetCDF/MvNetCDF.[cc,h]
   .date: 2012-07-17

217ir Macro: added new function sort(vector, string)

   .New Macro function sort(vector, string) returns a sorted version of
    the given vector. If no second argument is given, the result will be
    sorted in ascending order; otherwise, a second argument consisting of
    a string can be given: '<' for ascending, '>' for descending order.

   .files: Macro/mvector.cc,value.h
   .date: 2012-07-17

216fi Allow the geopoints decoder to access only part of the data

   .A new parameter, 'number of lines' (nlines), was added to inform the decoder to
    read only the first nlines of the file. For example, if the date and time information
    need to be decoded, only the first line of the data needs to be read.

   .files: libMetview/MvGeoPoints.*, uPlot/GeopointsDecoder.cc
   .date: 2012-07-13

215ir Remove redundant output options from Opera Radar Filter

   .Removed output options which were the 2D geopoints formats. This parameter
    is in fact ignored by the module; the ouput is always geopoints/xyv.
   .files: OperaRadar/OperaRadarDef
   .date: 2012-07-10


214sk Extended level filter in Obsfilter to work with arbitrary coordinate descriptors 

   The level filter in ObsFilter so far has allowed only surface or pressure
   level/layer selection. Now two new options were added to the level filter so
   that it could work for any kind of coordinate descriptors (e.g. height, satellite
   channel etc). These two new options are follows: 
  
   o Descriptor Value: If Level is set to Descriptor Value then ObsFilter performs
     level filtering according to the descriptor specified in Level Descriptor.
     The level value is taken from parameter First Level. 
   o Descriptor Range: If Level is set to Descriptor Range then ObsFilter
     works similarly but selects the first available level in the specified range.
     The level range is taken form parameters First Level and Second Level. 
     
   .files: ObsFilter/ObsFilter.cc, libMetview/MvObs.cc,MvBufrObs.h,
           etc/ObsFilterDef, ObsFilterRules
   .date: 2012-07-09

213ir Ensure that icons in the icon drawers are always writable

   .When running Metview from a development directory, there is a risk of copying
    read-only icon files from the Perforce depository. This can also happen with
    the tarball (should be ok when run from an installed version though). Now,
    when Metview UI starts up and is copying the icon files from the system
    drawers, it also checks whether each local file is writable, and if not, makes it so.

   .files: libMetview/MavPath.[cc,h], MetviewUI/Filter.[cc,h], FolderDrawers.cc
   .date: 2012-07-09

212ir Removed code for handling computations with GRIB fields in polar stereographic grids

   .This was done to avoid some licensing issues.

   .files: libMetview/MvGrid.[cc,h]
   .date: 2012-06-21

211fi New application: GribVectors

   .This application is similar to Metview 3 Vectors.

   .files: configure.ac, etc/uPlotTable, icons/Makefile.am, src/Makefile.am,
           uPlot/MagicsTranslator.*, uPlotManager.cc,
           GribVectors/GRIBVECTORS.xpm, GribVectorsDef, GribVectorsRules,
           Makefile.am, ObjectSpec.GribVectors, Vectors.*

   .date: 2012-06-15

210ir Updated XServ module to use Qt instead of Motif

   .Re-written to use Qt.

   .files: src/DebugTools/XServ.[cc,h,qrc]
   .date: 2012-06-14

209fi uPlot: Layers boundaries, rivers and cities will be plotted only in the foreground

   .At the moment, there is no drawing priority for these 3 layers. So, they
    will be the last objects to be plotted. Also, for the Coastlines icon,
    only the parameters set by the user will be passed to Magics, instead of
    the all the default ones

   .files: uPlot/MagicsGraphicsEngine.cc
   .date: 2012-05-30

208ir Updated version number to 4.4.0

   .New revision number.

   .files: version.sh
   .date: 2012-05-29

207ir Updated version number to 4.3.0

   .New revision number.

   .files: version.sh
   .date: 2012-05-29

206sk GEO_TO_GRIB application: does not always generate the required grid geometry (Souhail Boussetta)
   
   .GEO_TO_GRIB did not always generate the required grid: sometimes 
    the output grid was smaller by one row or column than expected. This
    issue has been fixed now. On top of that GEO_TO_GRIB more rigorously
    tests the output grid parameters and gives a warning message if any
    incosistencies are found (e.g. if grid resuolution does not match the
    size of the domain).
   
   .files: MvApp/geo_to_grib.cc
   .date: 2012-05-29 
   
205vk OPERA Radar Filter: new module

   .Added new module for the purpose of reading OPERA radar BUFR  messages
    and converting the data to geopoints format. See the changelog on the
    web, and in the future, the documentation, for more details [METV-85].
    Note: this log entry was written by ir, a couple of weeks after the
    work was done.

   .files: src/OperaRadar/*
   .date: 2012-05-29

204ir uPlot: added parameter LEGEND_TITLE_ORIENTATION to the Legend icon

   .Now the user can decide, for a column legend, if they want the
    title text to be horizontal or vertical (default).

   .files: share/metview/etc/MLEGENDDef,MLEGENDRules
   .date: 2012-05-29

203fi uPlot: added Layer info to Data, Text and Legend

   .The Layer info for Coastlines will be added later, after the
    Coastlines handling in Metview is revised.

   .files: uPlot/DataObject.cc, Device.cc, GraphicsEngine.h,
           MagicsGraphicsEngine.*, Makefile.am, MapView.cc,
           MvIconDataBase.*, MvLayer.*, ObjectList.*, 
           PlotModView.cc, Presentable.*, Root.cc, SubPage.cc,
           SuperPage.*, uPlot.*
   .date: 2012-05-24

202ir Macro: added optional 'resize' parameter to set_values(fieldset)

   .If the user wants to create a new fieldset from a template, they
    may wish to change the number of values; if they supply
    a third parameter to the set_values() function, it must be
    the string 'resize'. More options could be added in the future.

   .files: Macro/grib.cc
   .date: 2012-05-10

201ir Updated mvl_ml2hPa() to properly encode levels < 1 hPa

   .Pressure levels < 1hPa should actually be encoded in Pa, not hPa;
    therefore the level needs to be multiplied by 100 in order to
    make the encoding correct. Issue reported by Sandor while
    investigating an issue for Rossana.

   .files: share/metview/app=defaults/CommonMacroFuncs/mvl_ml2hpa
   .date: 2012-05-03

200ir ODB-1 support should now be usable in non-ECMWF installations

   .There were some hard-coded paths and settings for using ODB-1 at
    ECMWF. These have now been generalised, and the ODB-1 related
    configure flags have been revised. They are now:
      --with-odb1-bin         Path to the ODB-1 bin directory.
      --with-odb1-version     Required version of ODB-1 environment [default=ANY.]
      --with-odb1-use-script  Path to ODB-1 'use' script (normally 'use_odb.sh').

   .files: scripts/mv_odbsql,mv_odbsql2, configure.ac, configure.ecmwf
   .date: 2012-05-03

199ir Macro: added new function filter(vector, vector)

   .New Macro function filter(vector, vector) works the same way as the
    filter function works on geopoints: takes two vectors, and returns a
    new vector containing only the values of the first vector where the
    second vector's values are non-zero and non-missing.

   .files: Macro/mvector.cc,value.h
   .date: 2012-05-02

198ir Startup: added new command-line option -m for specifying a different MAGPLUS_HOME

   .Metview can now be started with the command-line parameter -m <path-to-magics>
    where the supplied path points to what should be the new MAGPLUS_HOME.

   .files: scripts/metview_base
   .date: 2012-04-30

197ir Macro: added optional second argument to Macro function describe()

   .The function describe() can now take a second argument to specify how it should
    handle its results: with no second argument, it will print the function
    description to stdout. With "as_value" as its second argument, it will instead
    return a list of strings - one for each version of the function.

   .files: Macro/misc.cc,function.cc,macro.h,node.h
   .date: 2012-04-30

196ir Macro Editor: added option to automatically insert licence text when opening an empty file

   .This should be used by ECMWF users who are writing new macros for
    users.

   .files: MacroEditor/MacroEdit.[cc,h,ui], MvMain.cc
   .date: 2012-04-27

195ir Macro Editor: added 'Insert Licence' action

   .Licence text, as stored in share/metview/etc/licence_for_macros.txt,
    can now be inserted at the top of a macro (or other file that is
    edited by the Macro Editor) at the push of a button. It will
    intelligently decide where to put the text (after the file header
    if it exists) and how to comment it depending on the current type
    of file (e.g. Macro or MagML).

   .files: MacroEditor/*.[cc,h]
   .date: 2012-04-27

194ir Updated version number to 4.2.5

   .New revision number.

   .files: version.sh
   .date: 2012-04-26

193ir Removed libMars-Odb

   .Because the ODB-MARS client had already been replaced by the 'standard'
    MARS client which now supports ODB (139ir), we can now remove libMars-Odb
    and the executable MarsOdb, and redirect RETRIEVE_ODB requests to the
    'standard' MARS client in the same way that TIGGE requests are.

   .files: libMars-Odb/*, configure.ac, src/Makefile.am, MvApp/MarsG2.cc
   .date: 2012-04-26

192fi Updated request copying in uPlot

   .Loop to copy requests using justOneRequest function replaced to a new
    function in MvRequest::copyFromCurrent. This should improve speed performance.

   .files: libMetview/MvRequest.*, uPlot/OutputFormatAction.cc, NewpageAction.cc
   .date: 2012-04-24

191fi Fix in uPlot: Lambert projection area definition

   .In Lambert projection, if MAP_AREA_DEFINITION was set to CORNERS, the AREA definition
    values were not passed to Magics correctly.

   .files: uPlot/PmGeneralProjection.*
   .date: 2012-04-23

190ir Macro Editor: improved visual display of whitespace characters

   .Display of tabs and spaces is now done with symbols instead of
    syntax highlighting, making it easier to see the invididual characters.

   .files: MacroEditor/*.[cc,h]
   .date: 2012-04-23

189fi Updated scheme for plotting vector fields automatically

   .uPlot now plots vector fields (u/v or speed/direction) automatically. Currently,
    uPlot understands the following vector fields (described at uPlotTable): a) u/v: 
    u/v, 10u/10v, ewss/nsss, ocu/ocv; b) speed/direction: wind/dwi, swh/mwd, shww/mdww,
    shts/mdts. The order of the fields in the fieldset is important, e.g. u/v is a vector 
    and v/u is not.

   .files: etc/uPlotTable, uPlot/Dataobject.cc, GribDecoder.cc ObjectList.*

   .date: 2012-04-17

188ir Updated version number to 4.2.4

   .New revision number.

   .files: version.sh
   .date: 2012-04-12

187ir Fix in stdev(fieldset) macro function (Linus Magnusson)

   .Problem in the Mars stdev() function with uninitialised memory being
    tested. Under very particular circumstances, this could cause very
    erroneous results (essentially the maximum possible value). Fix is in
    the Mars code, done by Manuel Fuentes but mentioned here because it
    directly affects a Macro function.

   .files: libMars/calc.c
   .date: 2012-04-04

186ir Updated version number to 4.2.3

   .New revision number.

   .files: version.sh
   .date: 2012-03-29

185fi Added Average View module

   .The basic functionality is working. The Macro automatic generation function
    needs to be updated.

   .files: etc/MAXISDef, MAXISRules, MAverageViewDef, MAverageViewRules, MXSectViewDef, 
           uPlotTable, ObjectList, Makefile.am, PlotPageDef, PlotSuperPageDef,
           icons/MAVERAGEVIEW.xpm, Makefile.am, CptecAccess/CptecAccessDef,
           MetviewUI/ViewEditor.cc, XSection/VProfileDef, XAverageDef, XSectionDef,
           Xsect.cc, uPlot/AverageView.*, XsectView.cc, uPlotManager.cc, Makefile.am

   .date: 2012-03-28

184sk ODB Filter does not fail if the query runs correctly but returns no data

   .It can happen that an ODB/SQL query runs correctly but returns no data. In this
    case ODB Filter and ODB Visualiser do not fail anymore. This is true for both
    the interactive usage and Macro.
     
   .files: libMetview/MvScanFileType.cc, macro/codb.cc, 
           Odb/OdbFilter.cc, OdbVisualiser.cc 
   .date: 2012-03-19

183sk Add a new tab to show values in the Grib Examiner 

   .The Grib Examiner now fatures a new dump mode on the right hand side
    to display the latutitude and longitude co-ordinates and the values of
    all points coded in a message. 

   .files: libUtil/GribMetaData.[cc,h], 
           libMvQtGu/MvQGribDumpModel.[cc,h], MvQGribExaminerBase.[cc,h]
   .date: 2012-03-19

182sk Added NetCDF support to the layer meta-data panel in uPlot

   .The layer meta-data panel in uPot now displays information, statistics 
    and a histogram for NetCDF data.

   .files: app-defaults/LayerKeyProfile_defualt.xml
   .date: 2012-03-12

181vk More fixes in 'MARS Catalogue' tab (in MARS editor)

   .Modified code in "Find the current settings" to expand the request
    using EXPAND_LAST_NAME (it looks like MARS Catalogue does not
    understand Metview default EXPAND_2ND_NAME). Now finding works
    much better, i.e. some requests work (almost?) OK, while others
    may still have some hickups.

   .files: MetviewUI/SimpleEditor.[cc,h], MetviewUI/CatalogDrawer.cc
   .date: 2012-03-12

180fi Added Vertical Profile View module

   .Only the basic functionality is working. There are still funtions to be
    added, such as, customising axes and Macro automatic generation.

   .files: etc/MVertProfViewDef, MVertProfViewRules, uPlotTable, ObjectList,
           Makefile.am, icons/MVPROFVIEW.xpm, Makefile.am,
           uPlot/CommonXSectView.*, Makefile.am, DataObject.cc, Page.*,
           MagicsTranslator.*, SubPage.cc, VertProfView.*, XSectView.*,
           uPlotManager.cc
   .date: 2012-03-11

179fi Added XSection View module

   .Only the basic functionality is working. There are still funtions to be
    added, such as, customising axes and Macro automatic generation.

   .files: etc/MXSectViewDef, uPlotTable, XSection/ObjectSpec.XSection, XSect.cc,
           uPlot/CartesianView.cc, CommonXSectView.*, Makefile.am, PlotModConst.h,
           PlotModService.cc, PlotModView.*, PmProjection.h, XSectView.*,
           uPlotManager.cc
   .date: 2012-03-09

178vk Fixes in 'MARS Catalogue' tab (in MARS editor)

   .Commented out non-functional "Grab request from current page" button
    and changed the request created by "Find the current settings" in the
    catalogue" button to create lower case values as MARS Catalogue seems
    not to like upper cases.

    TO DO:
    -----
    It seems that in "Find the current settings" MARS Catalogue uses
    the last value (EXPAND_LAST_NAME) and does not understand the second
    value (EXPAND_2ND_NAME) that Metview uses by default => somehow use
    the language file and expand the request using EXPAND_LAST_NAME.

   .files: MetviewUI/UICatalogDrawer.cc, MetviewUI/CatalogDrawer.cc
   .date: 2012-03-08

177fi Updated communication between Macro and uPlot

   .Macro was updated to better handle plotting requests, such as PLOT and NEWPAGE.
    The function to handle the EDIT request was also updated.

   .files: Macro/request.cc, etc/DeviceDriverDef, EPSOutputDef, KMLOutputDef,
           PDFOutputDef, PNGOutputDef, PSOutputDef, SVGOutputDef
   .date: 2012-03-07

176fi Updated the zoom scheme in uPlot

   .The new zoom scheme holds a string instead of a area location (two coordinates
    points) information. This string contains a set of definitions, related to
    area, projection and view, which will be used by Magics to re-draw the map.

   .files: uPlot/CartesianView.*, MapView.*, Page.*, PlotModView.*, Presentable.h,
           ZoomStacks.*, uPlotBase.cc
   .date: 2012-03-02

175fi Added in uPlot a redrawing scheme to handle resquests from the Contents

   .First version: it only handles certain visdefs (not coastlines)

   .files: uPlot/Page.h, PlotModView.*, SuperPage.cc
   .date: 2012-02-23

174fi Added new View: GeoView

   .GeoView is now the default 2-D geographical view, replacing MapView.

   .files: etc/Makefile.am, ObjectList, uPlotTable, icons/Makefile.am, MAPVIEW.xpm,
           uPlot/GeoTool.cc, MapView.cc, ObjectList.*, Page.cc, PlotModConst.h,
           Presentable.h, SuperPage.*, uPlotBase.cc, uPlotManager.cc
   .date: 2012-02-22

173ir Fixed problem where stepping in one subpage affected another

   .When displaying more than one page in a single window, changing the
    animation step in the active page also affected the other pages. This
    was related to an experimental feature which was switched on by default.
    It is now switched off.

   .files: uPlot/uPlotBase.cc
   .date: 2012-02-16

172fi Added 'zoom' functionality in uPlot to handle Proj4 and CartesianView

   .Proj4: do not send the default geographical coordinates

   .files: etc/CartesianViewDef, CartesianViewRules, libUtil/MvRequestUtil.*,
           uPlot/Cartesianview.*, Location.*, MagicsGraphicsEngine.cc, MapView.cc,
           Page.cc
   .date: 2012-02-10

171fi Added functionality to drop visdefs to fieldsets containing 1D and 2D fields

   .Since VECTOR_FIELD concept has been removed (item 167), a new scheme to handle the
    dropping of visdefs to fieldsets containing 1D and 2D fields is implemented.

   .files: etc/uPlotTable, uPlot/DataObject.cc, Decoder.*, GeoPointsDecoder.*,
           GraphicsEngine.h, MagicsGraphicsEngine.*, MapView.cc, ObjectList.*,
           Page.cc, Presentable.cc, Root.cc, SubPage.*
   .date: 2012-02-06

170sk Added FLEXTRA interface

   .Metview provides a high level interface to the FLEXTRA trajectory model.
    Metview is able to prepare input data for FLEXTRA, run FLEXTRA and visualise
    the resulting output files. The interface was developed and tested with
    version 5.0 of FLEXTRA, which is using GRIB API to handle GRIB2 fields.
    There is a tutorial available on the Metview website which explains the
    usage of the FLEXTRA interface in detail.

   .files: all the files in Flextra and FlextraExaminer,
           scripts/mv_flextra_run, mv_flextra_run.mv,
	   libUtil/MvFlextra.[cc,h], Macro/mflextra.cc,files.cc
	   CommonMacroFuncs/mvl_flextra_etadot
   .date: 2012-02-02 (Files have been continuously added and modified
          in the last two months).

169ir New Macro function unique(list)

   .Returns a list of the unique elements in the input list.

   .files: Macro/mlist.cc,value.h,code.h
   .date: 2012-02-02


168vk Comment out 'marslog' call that causes a mysterious crash

   .While processing NCEP PrepBUFR files one 'marslog' call causes a crash.
    Tried 'valgrind' to spot the reason, not found, so commented out the
    call.
    Also, now fully ignore erroneus NCEP msgs with ZERO data subsets.

   .files: libMetview/MvObsSet.cc
   .date: 2012-01-31

167fi Add new scheme for plotting GRIB fieldset containing 1D and 2D fields

   .The VECTOR_FIELD concept has been removed. Now dataunit GRIB accepts 1D
    and 2D visdefs (e.g. MCONT and MWIND).

   .files: etc/uPlotTable, uPlot/DataObject.*, MagicsGraphicsEngine.*, Root.cc,
           MagicsTranslator.cc, MapView.*, ObjectList.*, PlotModView.h, SubPage.cc
   .date: 2012-01-27

166ir Fixed issue where Vertical Profile was failing to handle missing data properly

   .In the AREA/AREA2 modes of the Vertical Profile module, the situation
    where there was a mixture of missing and non-missing values was not
    handled properly; now, the missing values are safely ignored. This
    change was actually in MvFieldSet::integrate(), and should also
    affect Hovmoeller and possibly other modules which use this function.

   .files: libMetview/MvFieldSet.cc
   .date: 2012-01-25

165fi New application: CPTECAccess, which is INPE's specific

   .This module is only installed if configure option --enable-inpe is
    defined.

   .files: src/CptecAccess/*, src/Makefile, share/metview/icons/Makefile.am,
           configure.ac
   .date: 2012-01-25

164ir Macro tests on lists now fail if any element of the list is false

   .Previously, the test "if(list)" would always pass, no matter what the
    contents of the list. Now, "if(list)" will fail if any of its elements
    fail (currently, only nil and zero fail).

   .files: Macro/code.cc,Macro/include/code.h
   .date: 2012-01-20

163ir List-list macro operators now return nil if different number of elements

   .List-list macro operators (e.g. "list = list" or "list + list") now return
    nil and issue a warning message if the two input lists have different
    numbers of elements. The previous behaviour was to issue an error message
    and stop the macro.

   .files: Macro/mlist.cc
   .date: 2012-01-20

162ir Macro function values(netcdf) has a new mode to allow more powerful access to data

   .New syntax: values(netcdf, list) where list is a list with the same number
    of elements as the number of dimensions of the current netCDF variable. The
    elements (except one) should be numbers, specifying the indexes (1-based)
    into the respective dimensions from where the value(s) are to be taken.
    If all elements are numbers, then they simply specify the coordinates
    for a single value (returned as a single-value vector). Optionally, one
    of the elements can be set to the string 'all'; in this case, all the
    values from that dimension are returned in a vector. For example, if the
    current netCDF variable is defined with 3 dimensions: Q(time, region, exp)
    then we can obtain the values for all times, for the second region and
    the fifth exp with this syntax: v = values(nc, ['all', 2, 5]).

   .files: Macro/netcdf.cc
   .date: 2012-01-19

161ir New Macro function find(list, any)

   .Searches the given list for an item and returns the index of
    the first occurence of it. If an optional third argument is given
    as the string 'all', then a list of the indexes of all occurences of
    the item is returned. In both cases, if the item is not contained
    in the list, nil is returned.

   .files: Macro/mlist.cc
   .date: 2012-01-11

160ir Macro function values(netcdf) can now handle 'char' variables

   .When a netCDF variable contains ncChar strings, the values(netcdf)
    function was previously returning a vector of numbers; now it
    returns a list of strings. Also value(netcdf,index) can handle
    ncChar strings.

   .files: Macro/netcdf.cc
   .date: 2012-01-11

159ir New Macro function global_attributes(netcdf)

   .The global attributes of a netCDF file can now be accessed by
    global_attributes(nc) in Macro.

   .files: Macro/netcdf.cc,include/cnetcdf.h, libMvNetCdf/MvNetCDF.h
   .date: 2012-01-10

158ir List macro functions now work between dates and lists, e.g. a = date + list

   .The binary operators between lists have been expanded to include a date as one
    of the arguments, e.g. a = date + list  will return a list of dates if the
    input list contains a list of numbers which are date offsets.

   .files: Macro/mlist.cc
   .date: 2012-01-10

157ir GEO_TO_GRIB application: fixed issue in EXPONENTIAL modes when Tolerance=0

   .In modes EXPONENTIAL_MEAN and EXPONENTIAL_SUM, when Tolerance was set
    to zero, only the input points which were *not* on the output point
    were considered; this was the opposite of what was intended.

   .files: MvApp/geo_to_grib.cc
   .date: 2012-01-09

156ir Macro: added optional third parameter to parse() function

   .The Macro parse() function now accepts an optional third parameter
    which specifies the data type that the result should be in. Currently
    it only accepts 'string', which means that the result will be a list
    of strings, with no 'intelligent conversion' performed. This can be
    useful, for instance, when a string such as '4/05/6' is parsed
    and we wish to preserve the full string '05'.

   .files: Macro/mstring.cc
   .date: 2012-01-04

155vk Fixed ObsFilter/MvObs code to filter successfully non-compressed BUFR msgs

   .Previous code did not work with non-compressed multisubset msgs where
    delayed descriptor counts varied from subset to subset. Fixed.

    Also, new code always produces single subset msgs when filtering is
    done using data values from BUFR section 4. When filtering is done
    using only metadata values in BUFR section 1, multisubset msgs are
    copied as is (no change in behaviour).

   .files: src/libMetvie/MvObs.cc, src/ObsFilter/ObsFilter.cc
   .date: 2011-12-30

154vk BufrPicker can now pick ALL values related to the innermost coordinate

   .The innermost coordinate value can now be given as "ALL" in order
    to pick all corresponding values. Current version produces geopoints,
    but this could be enhanced to produce alternatively a CSV file.

   .files: src/libMetview: MvBufr.h, MvBufrObs.h, MvObs.cc, MvObsSet.cc,
           src/ObsFilter:  BufrPicker.cc, BufrPickerDef
   .date: 2011-12-29

153ir Added experimental MARS client based on SCIN interpolation

   .This is really a proof-of-concept addition to get the technical
    framework up and running.

   .files: libMars-scin/* MvApp/MarsScin.cc, various in share/metview/etc/
    share/metview/icons, scripts. See Perforce changelist 66107.
   .date: 2011-12-20

152vk Two NCEP PrepBUFR related files not installed

   .Files AuxPrepBufrTable_B.txt and AuxPrepBufrTable_D.txt existed in P4,
    but they were not listed in share_DATA and thus not installed :-(
    Added files to share_DATA list of dir share/metview/etc.

   .files: share/metview/etc/Makefile.am
   .date: 2011-12-19

151ir Macro: allow conversion from list to vector

   .It is now possible to convert a list of numbers to a vector with the function
    vector vector(list)
      Returns a vector containing the numeric elements of the input list. Any
      'nil' list elements are converted to vector_missing_value. Any other
      non-numeric elements will cause an error. If the input list is empty, the
      function returns nil.

   .files: Macro/mvector.cc
   .date: 2011-12-08

150sk Unified Layer and Layer Data tabs in uPlot

   .The Layer and Layer Data tabs in uPlot's sidebar have been unified. Now
    there is a single tab for layers (called Layer) contaning tool buttons at the
    top to switch between two view modes. In 'layer' view mode the
    contents of the previous Layers tab is shown, while in 'meta-data' view mode
    the contents of the previous Layer Data tab is visible.

   .files: uPlot/Makefile.am,MvQLayerContentsWidget.[h,cc],
           MvQLayerDataWidget.[h,cc], MvQLayerMetaDataWidget.[h,cc],
	   MvQLayerWidget.[h,cc], MvQlayerModel.[h,cc], uPlot.qrc,
	   uPlotBase.[h,cc]
   .date: 2011-12-07

149ir Added Vertical Profile module

   .The Vertical Profile module was re-introduced and updated for Magics++.

   .files: XSection/XSect.cc,MvXSectFrame.cc,VPROFILE.xpm,VProfileDef,VProfileRules,
           ObjectSpec.XSection,
           share/metview/app-defaults/Modules (Plotting)/[.]Vertical Profile
   .date: 2011-12-07

148ir Added new ASCII table reader functionality to parse header meta-data

   .Meta-data can be added to an ASCII table file in the form of multiple lines
    containing multiple param=value pairs. Pairs are space delimited. Example:
      PARAM1=VALUE1 PARAM2=VALUE2 PARAM3=VALUE3
      PARAM4=VALUE4.
    In the read_table() function, the new parameter table_meta_data_rows exists
    and accepts either a single number or a list of numbers specifying the
    row(s) containing the meta-data (first row is 1).
    New Macro functions:
      list metadata_keys(table)
          returns a list of all the available meta-data keys (list of strings)
      string metadata_value(table, string)
      list   metadata_value(table, list)
        given a key (or list of keys), returns the corresponding value(s)
        from the table's meta-data. For any key that does not exist in the
        meta-data, a 'nil' variable is returned. If there is no meta-data for
        the table, then 'nil' is returned.

   .files: libUtil/TableReader.[cc,h], libMetview/MvTable.[cc,h], Macro/mtable.cc
   .date: 2011-12-05

147fi Added NETCDF_XY_POINTS option to the NETCDF_VISUALISER application

   .Added xy_points function to the NETCDF_VISUALISER application

   .files: etc/uPlotTable, StdAppManager/NetcdfPlusDef, NetcdfPlusRules,
           ObjectSpec.StdAppManager, uPlot/MagicsTranslator.cc, uPlotManager.cc
   .date: 2011-12-01

146fi Implemented multi-pages scheme in uPlot

   .uPlot generates a new tree where the top is the 'Root' and the first leaves are
    the 'SuperPage's. In the old code (inherited from PlotMod), the top of the tree
    was a 'Superpage'.

   .files: Macro/request.cc, uPlot/CreateAction.cc, DropAction.cc, GraphicsEngine.h,
           MagicsGraphicsEngine.*, ObjectInfo.cc, Page.*, Presentable.*, Root.*,
           SubPage.*, SuperPage.*, XDevice.cc, ZoomStacks.cc
   .date: 2011-11-30


145sk Added GRIB scaling meta-data keys to the Layer Data tab in uPlot

   .The Layer Data tab in uPlot's sidebar now contains information about the
    GRIB value scaling used for the visualisation. The scaling formula and
    the scaled units are both present here.

   .files: app-defaults/LayerKeyProfile.xml
   .date: 2011-11-25


144vk Added code to skip illegal BUFR msgs (with 0 subsets!)

   .Added a check against 0 subsets into MvObsSet::next().

   .files: libMetview/MvObsSet.cc
   .date: 2011-11-24

==============================================================================
           2011-11-21 Metview 4.1.3 released for export
==============================================================================

143ir System drawer files were read-only in non-installed export version

   .If an export version of Metview was built and run from the
    development directory instead of the installation directory,
    certain system files (e.g. icon drawers) were read-only.
    Permissions are now rectified when the tarfiles are un-tarred.

   .files: share/metview/app-defaults/Makefile.am
   .date: 2011-11-21

142vk Fixed BUFR code to work with non-compressed multisubset BUFR msgs

   .MvObs class called wrong subroutine (BUSEL) when non-compressed multi
    subset msg. This caused phase errors between values and metadata.
    Now calls BUSEL2 if multisubset msg.

   .files: libMetview/MvBufrObs.h,MvBufr.h,MvObs.cc,MvPrepBufrPrep.cc
   .date: 2011-11-17

141fi Updated several definition files and related source code

   .Axis, Graph, Legend and Symbol definitions were updated, together with
    some Visualisers source code. This also fixes the Macro function read_table().

   .files: etc/MAXISDef, MGRAPHDef, MLEGENDDef, MLEGENDRules, MSYMBDef, ObjectList,
           Macro/mtable.cc, StdAppManager/InputVisualiserRules, NetcdfPlusDef,
           TableVisualiserDef, libMetview/MvTable.cc
   .date: 2011-11-16

140vk Enhanced BUFR code to work with NCEP special "PrepBUFR" files

   .Added code to extract BUFR tables from PrepBUFR messages to a
    temporary directory and change BUFR_TABLES env.var.

   .files: libMetview/Makefile.am,MvObs.[h,cc],MvObsSet.cc,MvObsUtil.cc
       new files: MvObsSet.h,MvBufrObs.h,MvPrepBufrPrep.[h,cc],
                  share/metview/etc/AuxPrepBufrTable[B,D].txt
   .date: 2011-11-14

139ir Updated Mars client to the version that can handle ODB data

   .Required a couple of small changes to Metview's Mars client source,
    but the main changes are in the Mars code itself.

   .files: libMars/odb.[cc,h],Makefile.am MvApp/MarsG2.cc,Makefile.am,
           AppMod/Makefile.am configure.ac
   .date: 2011-11-11

138ir Updated version number to 4.1.3

   .New revision number.

   .files: version.sh
   .date: 2011-11-04

==============================================================================
           2011-11-04 Metview 4.1.2 released for export
==============================================================================

137ir Updated version number to 4.1.2

   .The visualiser icons have had their definitions changed, which certainly
    merits a new version number. There are also substantial updates from 4.1.1.

   .files: version.sh
   .date: 2011-10-05

136ir Added patching mechanism

   .Added new script, metview_patches, called at startup. The impetus for this
    was the fact that users who have already been using Metview 4 since it
    got its visualiser icons will now have broken icons in their user space;
    the first patch fixes this.

   .files: scripts/metview_base,metview_patches
   .date: 2011-10-05

136sk Fixed issue when displaying int values in the Odb Examiner (Andras Horanyi, ECMWF)

   .Previously all the integer ODB values were stored in float vectors in
    Metview which occasionally resulted in incorrectly displayed integer
    values in the Odb Examiner. This problem was overcome by storing the
    integer values in int vectors in Metview.

   .files: libUtil/MvOdb.cc, libMvQtGui/MvQOdbModel.cc,
           OdbExaminer/OdbExaminer.[cc,h]
   .date:  2011-09-30

135sk Redesigned ODB Visualiser icon

   .The ODB Visualiser icon has been changed. Previously its editor contained
    tabs for the different visualisation types (i.e. it was a "family editor").
    Now these tabs were removed and a sigle interface was created containing
    an option menu to switch between the different visualisation types.
    The class name of the icon has been changed from ODBVISUALISER_FAMILY
    to ODB_VISUALISER. The OdbVisualiser module, which is assigned to the
    'execute' action of the icon, now returns back a different request for
    each visualisation type (e.g. ODB_GEO_POINTS etc.)

   .files: AppMod/savepool.cc, Odb/ObjectSpec.Odb, OdbVisualiser.cc,
           OdbVisualiserDef, OdbVisualiserRules, OdbExaminer/MvMain.cc,
	   uPlot/uPlotManager.cc
   .date:  2011-09-29

134sk Redesigned Cursor Data Tool in uPlot

   .The Cursor Data Tool is to display the data values at the position
    underneath the cursor in the plot. This tool has been completely
    redesigned. Tha data values are now presented in a table on a
    non-transparent background. For each data layer the table shows the
    data value, the coordinates and the distance to the position underneath
    the cursor. In addition to the new design the Cursor Data Tool is now
    able to show data values for ODB data layers.

   .files: uPlot/MvQCursorData.[h,cc], MvQCursorDataWidget.[h,cc],
           MvQPlotView.[h,cc], uPlotBase.[h,cc],layerInfo.css
   .date:  2011-09-28

133sk Fixed problem with having different font sizes on screen than in other outputs

   .uPlot is now using the current screen resolution for rendering. Previously the
    screen resolution was hardcoded to 75 dpi and it resulted in different plot and
    font sizes in the screen than in the other output formats. The screen resolution
    value is now determined by the startup script (using the X11 command 'xdyinfo')
    and stored in the env variable METVIEV_SCREEN_RESOLUTION.

   .files: scripts/metview_base, uPlot/uPlotBase.[h,cc]
   .date:  2011-09-22


132sk Redesigned menu and toolbar setup for all the Qt-based applications

    .The main class of all the Qt-based Metview applications is derived from
    the MvQMainWindow class, which is responsible for the menu and toolbar
    creation. Now this class offers only one central method (called 'setMenus')
    for the menu and toolbar creation and all the derived classes are forced
    to use it.

   .files: several files in BufrExaminer, GeopExaminer, GribExaminer,
           MarsCatalog, NcExaminer, ObstatCurveTool, ObstaScatterTool,
	   OdbExaminer, OgcClient, libMvQtGui, uPlot
   .date:  2011-09-22

131sk Added point selection to GeoTool

   .GeoTool is a helper application in Metview to define an area, line or
    point on a geographical domain. So far GeoTool has supported only
    area and line selection but now is able to handle point selection
    as well.

   .files: uPlot/GeoTool.[h,cc], MvMainGeoTool.cc, MgQPlotView.[h,cc],
           MvQpointSelection.[h,cc]
   .date:  2011-09-20

130ir Fixed issue when dropping icons into Macro Editor

   .An intermittent bug caused the full path of an icon to occasionally be
    corrupted. This affected the dropping of icons into the Macro Editor,
    and might have been causing other effects when dragging and dropping icons.

   .files: MetviewUI/DragWindow.cc
   .date:  2011-09-15

129ir New Macro library function mvl_create_netcdf_2d()

   .Added a new Macro library function, mvl_create_netcdf_2d(),
    which generates a netCDF file with a 2-dimensional array of data.

   .files: share/metview/app-defaults/CommonMacroFuncs/mvl_create_netcdf_2d
   .date:  2011-09-15

128sk uPlot: added a plot resize interface

   .uPlot is now equipped with a plot resizing interface. It comprises a combo box
    with the resize option selection and two buttons to increase or decrease the
    plot size in discrete steps. The combo box offers a set of fixed resize values
    (specified in the percentage of the original plot size: from 50% up to 200%).
    On top of that there are dynamic options as well such as: "Fit To Window",
    "Fit to Width" and "Fit To Height".
    Please note that the resize operation only affects the apparent plot size
    on the screen and does not change the original plot size (which is used for
    printing and exporting).

   .files: uPlot/uPlotBase.[h,cc], MgQPlotView.[h,cc], GeoTool.[h,cc],
               MvMainGeoTool.cc, MvQAreaSelection.[h,cc],
	       MvQLineSelection.[h,cc]
   .date:  2011-09-12


127ir Macro Editor: added new Run options
    .From the Macro Editor, the user can now select the following options:
       o highlight current execution line
       o pause between line excecutions
       o wait for asynchronous function calls
       o choose a different run mode
     The Debug run option has been moved to the new set of options
     and renamed 'Trace'. All options are available from a new dialog,
     either from the Program menu or on the toolbar.

    .files: Macro/context.cc,main.cc,include/macro.h,
            MacroEditor/RunDialog.[cc,h],MacroRunOptions.h,
            MacroEdit.[ui,qrc,h,cc]
    .date: 2011-09-08

126sk Set the graphics system to 'raster' for Qt applications

    .All the Qt applications in Metview are now started up by explicitly
     specifying the graphics system via the '-graphicssystem' flag. This
     flag can be set via the METVIEW_GRAPHICS_SYSTEM env variable at Metview.
     startup. The accepted values are 'raster' and 'native'. By default
     METVIEW_GRAPHICS_SYSTEM is set to 'raster'.
     Metview previosly did not specify the graphics sytem at all and
     according to the Qt documention the 'native' system, which is based on
     X11 on Linux, was used by default. By switching the graphics sytem to
     'raster' the rendering process dramatically speeds up on the tested
     Linux systems (Qt 4.6.3 - 64bit, OpenSUSE 10.3 and 11.3) so this is why
     'raster' is selected as default.

    .files: scripts/metview_base,metview_help,
            etc/Services, Odb/ObjectSpec.Odb,
	    uPlot/DataToolManager.cc,GeoToolManager.cc,uPlotService.cc
    .date:  2011-09-07

125sk Icon drops outside the plot area in uPlot are now allowed

    .uPlot previously crashed when an icon was dropped outside the plot
     area. This problem has been fixed now.

    .files: uPlot/uPlotBase.cc
    .date:  2011-09-06

124ir Macro: added new function waitmode()
    .New macro function waitmode(number) determines whether Macro
     waits immediately for asynchronous (icon-function) function calls
     (1) or not (0 = default). Returns the mode's previous value.
     Originally developed as a possible solution for issue 123ir, this
     was in the end not needed. However, it could still be useful in cases
     where we do not wish to have too many modules running at one time
     (occasionally an issue when virtual memory is scarce). It could also
     be useful when debugging macros (although trace(2) has a similar effect).

    .files: Macro/context.cc,misc.cc,include/macro.h
    .date: 2011-09-06

123ir Macro: temporary data files were not being cleaned properly
    .When a Macro variable which has an underlying temporary data file
     (e.g. GRIB, ODB, geopoints) is passed to another module, Macro
     marked the variable for non-deletion because it might still be in
     use by the external module when the user tries to destroy it. This
     has now been fixed for data types ODB, GEOPOINTS and BUFR but
     not for GRIB. Now, Macro stores a list of variables passed to
     asynchronous function calls and dereferences them when the function
     returns. GRIB is more complicated because the result of a GRIB filter
     makes reference to the original data file so we can't delete it at
     this stage.

    .files: Macro/value.cc,request.cc,codb.cc,bufr.cc,include/value.h
    .date: 2011-09-06

122sk Macro: retrieve_odb returns 'nil' if no data was found (Mark Rodwell, ECMWF)

    .Function retrieve_odb returns 'nil' if no ODB data was found according
     to the specified parameters.

    .files: MvApp/MarsOdb.cc
    .date: 2011-09-01

121sk Macro: odb_filer returns 'nil' if no data was found (Mark Rodwell, ECMWF)

    .Function odb_filter returns 'nil' if no data was found according to
     the specified ODB/SQL query.

    .files: Odb/OdbFilter.cc
    .date: 2011-08-31

120ir Re-introduced VelStr icon (Velocity Potential / Stream Function)

   .This module had already been re-written for Metview 4, it just needed
    to be added to ObjecList, etc.

   .files: etc/Services,ObjectList, Rules/Def/Icon files, Drawers
   .date: 2011-08-24

119fi uPlot-Magics communication: added CLEAR and REFRESH requests

   .The first request uPlot sends to Magics is either a CLEAR or a REFRESH.
    These are empty requests and indicates to this is a new request (CLEAR) or
    an old request with some updates.

   .files: uPlot/Presentable.*, SuperPage.cc
   .date: 2011-08-22

118fi GEO_TO_GRIB application: added one more interpolation method: EXPONENTIAL_SUM

   .Parameter WEIGHT_METHOD replaced by INTERPOLATION_METHOD. Also, added one more
    option to the interpolation method: EXPONENTIAL_SUM, which does not divide the
    final interpolated value by the total weight, e.g.:

	if (sigma && Weight_ != G2G_EXPONENTIAL_SUM )
		val = val / sigma;

   .files: MvApp/geo_to_grib.cc, etc/GeoToGribDef
   .date: 2011-08-19

117fi Added parameter WEIGHT_METHOD to application GEO_TO_GRIB

   .This new parameter defines two approaches to compute the weights in the
    interpolation procedure: 'reciprocal' and 'exponential'. The 'reciprocal' option
    was the aproach used before and it is the default value. The differences between
    these two methods are the following:

		// Compute weight
		if ( Weight_ == G2G_RECIPROCAL )
		{
			if( dist == 0 )
				return gp_iter->value();   //-- Here the point is on the Grid
			dist = 1/dist;
		}
		else // exponential
		{
			if ( Tolerance != 0 )
				dist = exp(-(dist/(pow(Tolerance,2))));
			else
				dist = dist ? 1 : 0;
		}

   .files: MvApp/geo_to_grib.cc, etc/GeoToGribDef
   .date: 2011-08-18

116ir Updated version number to 4.1.1

   .Not related to specific featutes, just to make comparisons easier.

   .files: version.sh
   .date: 2011-08-11

115fi uPlot: added functions for timing analysis report

   .Three functions for timing analysis report were introduced: watchStart,
    watchLaptime and watchStop.

   .files: uPlot/PlotMod.*
   .date: 2011-08-09

114fi uPlot: fixed cartesianview + data request

   .uPlot was not interpreting correctly a request containing a cartesianview
    followed by a data.

   .files: uPlot/PlotPageBuilder.cc, DropAction.cc
   .date: 2011-08-09

113fi NetcdfManager: fixed definition file

   .The definition file for functions NETCDF_MATRIX and NETCDF_GEOMATRIX
    were not correctly defined.

   .files: StdAppManager/NetcdfPlusDef, ObjectSpec.StdAppManager
   .date: 2011-08-08

112fi Implemented drop facility to uPlot multi-pages: first version

   .Some optimization is still need later.

   .files: uPlot/DropAction.cc, MagicsGraphicsEngine.h, uPlotBase.cc
   .date: 2011-08-05

111sk Added search panel to the OdbExaminer

   .A search panel was added to the OdbExamier. It can be activated from the
    newly added "Edit" menu in the menubar or by pressing Ctrl+F. If activated,
    the search panel is located below the data view in the middle of the
    examiner's window.

   .files: libMvQtGui/MvQOdbDataWidget.h, MvQSearhLinePanel.cc,
           MvQTreeViewSearchLine.cc,
    	   OdbExaminer/MvMain.cc, OdbExaminer.[cc,h]
   .date: 2011-08-05


110sk Added search panel to the GeopointsExaminer

   .A search panel was added to the GeopointsExamier. It can be activated from
    the newly added "Edit" menu in the menubar or by pressing Ctrl+F. If activated,
    the search panel is located below the data view in the middle of the examiner's
    window. The "Go to row" spinbox, which was originally located below the
    data view, was placed above the data view.

   .files: libMvQtGui/MvQTreeViewSearchLine.[cc,h],
    	   GeopExaminer/MvMain.cc, GeopExaminer.[cc,h]
   .date: 2011-08-04

109sk Added search panel to the GribExaminer and BufrExaminer

   .A search panel was added to the GribExamier and the BufrExaminer. It can be
    activated from the newly added "Edit" menu in the menubar or by pressing
    Ctrl+F. If activated, the search panel is located below the message and
    data views in the middle of the examiners' window.

   .files: several files in libMvQtGui, BufrExaminer, GribExaminer
   .date: 2011-08-04

108fi NetCDF examiner: Qt-based second version

   .Second version of the NetCDF examiner based on Qt.

   .files: NcExaminer/MvMain, NcExaminer.*, libUtil/Makefile.am, Mvmiscelaneous.*
   .date: 2011-08-01

107sk Added "Layer Data" tab to uPlot

   .The meta-data information of the selected layer is now shown in a new control
    tab called "Layer Data" in uPlot. Previously this information was displayed in
    the "Layers" tab from where it has now been removed.

   .files: uPlot/MvQlayerDataWidget.[h,cc], MvQLayerWidget.[h,cc],uPlotBase.cc
   .date: 2011-07-26

106fi Overlay Control "uvt"

   .Fixed problem plotting wind and single fields when they come from the are same
    fieldset. Parameter SUBPAGE_OVERLAY_MODE was added to the definition file.

   .files: etc/MapViewDef, OverlayControl
   .date: 2011-07-25

105vk New module 'ObsPicker'

   .ObsPicker provides users better access to BUFR satellite data. With ObsPicker
    users can define several coordinate descriptors (with given coordinate values),
    thus providing access to parameters within the given coordinates.

   .files: in ObsFilter dir: ObsPicker[.cc,Def,Rules], ObjectSpec.ObsPicker, Makefile.am
           in share/metview/icons dir: OBSPICKER.xpm, Makefile.am
           in libMetview dir: MvObs.[h,cc]

   .date: 2011-07-21

104fi Added _ID parameter to the communication uPlot-Magics: first version

   .A new parameter _ID was added to the requests been sent to Magics.

   .files: uPlot/MagicsTranslator.cc, MvIcon.*, MvIconDataBase.*, Presentable.cc,
		 SuperPage.cc
   .date:  2011-07-20


103ir New Macro library function mvl_geopotential_on_ml()

   .Added a new Macro library function, mvl_geopotential_on_ml(),
    which computes geopotential on model levels.

   .files: share/metview/app-defaults/CommonMacroFuncs/mvl_geopotential_on_ml
   .date:  2011-07-13

102fi New Geopoints examiner based on Qt

   .The new Geopoints Examiner based on Qt replaces the previous one based on
    Unix command 'view'.

   .files: configure.ac, etc/ObjectList, src/Makefile.am, libMetview/MvGeoPoints.*,
		 libMvQtGui/MvQFileInfoLabe.*, libUtil/MvMiscelaneous.h, Makefile.am,
		 GeopExaminer/MvMain.cc, GeopExaminer.*, MvGeoPointsModel.*
   .date:  2011-07-06

101fi Updated communication scheme between uPlot and OdbVisualiser/WmsClient

   .OdbVisualiser now sends an unique verb (ODB_VISUALISER) to uPlot. There is
    no need to send a SKIP verb if the request comes from a Macro or Drop command.
    The WmsClient's status machine now has an extra parameter ('context') to
    indicate that this application needs extra information from uPlot (e.g.
    geographical information).

   .files: uPlot/ObjectList.*, MapView.cc, MacroConverter.cc,
		 OgcClient/ObjectSpec.WmsClient. Odb/OdbVisualiser.cc
   .date:  2011-07-05

100ir Macro functions pressure(), thickness(), vertint() and univertint()  not working with GRIB 2 data

   .Metview was using the 'dataRepresentationType' GRIB_API key (long) inside
    the MvField::dataRepres() function which is used by a number of functions,
    not just those mentioned above (Relative Humidity also uses it). However,
    this key is not available in GRIB 2, so we now use the existing grid type
    variable that we already store in MvGrid and convert it back to the
    corresponding integer. Also updated the internal function isLatLon()
    to use the correct key. Internal function marsName() also now uses
    the proper GRIB_API approach.

   .files: libMetview/MvFieldSet.cc
   .date:  2011-07-05

99fi Input/Table/Binning: changed parameter names

    .Binning is now an icon with class name: MBINNING. X/Y parameter names
	replaced by LONGITUDE/LATITUDE for GEO_* applications.

    .files: etc/BinningObjectDef, InputVisualiserDef, TableVisualiserDef,
		  ObjectList, Services, icons/Makefile.am, BINNING.xpm/svg
    .date:  2011-06-29

98ir Macro: added new function: number(string)

    .A frequent request is to have a macro function which converts a
     string into a number. This function does that, using atof() to do
     the conversion; this means that if a string cannot be converted
     into a number, then zero is returned. Example usage:
       a = number('123.4')

    .files: Macro/mstring.cc
    .date:  2011-06-28

97fi Macro: fixed a flush problem to the non-screen output drivers

    .Due to a previous change in the internal structure of the output drivers,
     the last request (or the first one, if there was only one plot to be
     generated) was not being flushed to all drivers, apart from the screen.

    .files: Macro/main.cc
    .date:  2011-06-27

96sk Added data sorting to the ODB Examiner

    .Users can now sort the data columns shown in the Data tab of
     the ODB Examiner. Sorting can be enabled by clicking on any of the
     data column headers but it is only available if no data blocks are used
     by the ODB Examiner. By default for more than 10000000 data items to
     show the ODB Examiner splits the data into individual blocks each having
     less than 10000000 items and users can navigate through these blocks one
     by one. To change the default limit value for the data block generation
     a new configure dialog (available via menu Settings) was added to the
     ODB Examiner.

    .files: OdbExaminer/OdbExaminer.[cc,h],
    	    libMvQtUtil/MvQOdbMetaData.[cc,h],
	    libMvQtGui/MvQOdbDataWidget.[cc,h], MvQOdbModel.[cc,h],
	    MvQMainWindow.[cc,h], window.qrc
    .date:  2011-06-22


95ir Macro Editor now detects if a file has been externally modified

    .When focus is lost and then regained by the editor, it checks to
     see whether the file has been externally modified, or its read-only
     status has changed. If its read-only status has changed, then it will
     automatically update itself (but not yet reload the file). If
     the file's modification time has changed, then the user is asked
     whether they wish to reload the file from disk. If they do not, then
     they won't be asked again unless the file is externally modified
     again. There is also a menu option (File | Reload from file) to
     force a reload of the file from disk.

    .files: MacroEditor/mvplaintextedit.[cc,h],MacroEdit.[cc,h,ui]
    .date:  2011-06-21

94fi InputVisualiser and TableVisualiser: updated function names

    .Functions Curve and Geo_Curve were removed and the new notations are:
	XY as opposite to GEO and POINTS instead of SCATTER

    .files: etc/InputVisualiserDef, InputVisualiserRules, TableVisualiserDef,
		  TableVisualiserRules, Makefile.am, ObjectList, uPlotTable,
		  icons/INPUTVISUALISER.xpm, TABLEVISUALISER.xpm,
		  StdAppManager/Makefile.am, ObjectSpec.StdAppManager, StdAppManager.cc,
		  uPlot/DataObject.cc, MagicsTranslator.cc, uPlotManager.cc
    .date:  2011-06-20

93fi Added a function to expand a request

    .New function: ExpandRequest . Also some minor changes to remove
	compilation warning messages.

    .files: etc/PSOutputDef, Macro/request.cc, libUtil/MvPath.*,
		  uPlot/MagicsTranslator.cc, ObjectList.*, PmProjection.cc,
		  libMetview/MvFieldSet.cc, MvGrid.cc, MvObs.cc, MvRequest.*,
		  MvScanFileType.cc, MvService.cc, MvServiceTask.cc, MvTable.cc,
		  MvVisTool.cc, Path.cc
    .date:  2011-06-20

92sk WMS Client: add proper handling for percent encoding in URLs

    .The WMS Client failed for HTTP requests containing percentage
     characters in the URL. This was overcome by converting the URLs with
     QUrl::fromPercentEncoding() into the proper format before generating
     the network request for them.

    .files: OgcClient/MvQWmsClient.cc
    .date:  2011-06-17


91sk WMS Client: only accepts CRSs with a valid bounding box for WMS 1.3.0

    .For WMS 1.3.0 only CRSs with a valid bounding box (specified in the
     <BoundingBox> element in the GetCapabilities document) are listed in
     the editor's "Layer settings" tab.

    .files: OgcClient/MvQWmsClient.cc
    .date:  2011-06-17

90sk WMS Client: added preview to the plain editor mode of the WMS Client

    .Now a preview image can be generated in the plain editor mode
     of the WMS Client.

    .files: OgcClient/MvQWmsClient.[h,cc], MvQWmsClientEditor.[h,cc]
    .date:  2011-06-17

89ir Renamed various Macro functions

    .For consistency (and 'niceness') of Macro function names, various functions
     were renamed; the original versions still work, but issue a warning. The list
     of deprecated functions and the new versions is:
     fieldset functions:
       gridvals->values, gridlats->latitudes, gridlons->longitudes,
       set_gridvals->set_values.
     geopoint functions:
       date->dates, level->levels, latitude->latitudes, longitude->longitudes,
       value->values, value2->value2s,
       set_latitude->set_latitudes, set_longitude->set_longitudes, set_level->set_levels,
       set_date->set_dates, set_time->set_times, set_value->set_values, set_value2->set_value2s.
     table functions:
       value->values.
     odb functions:
       value->values.

    .files: Macro/bufr.cc,function.cc,grib.cc,codb.cc
    .date:  2011-06-16

88sk GribExaminer: bug-fix for showing arrays in the "namespace dump" (Roger Brugge, ECMWF)

    .GribExaminer crashed in handling GRIB_API keys with arrays with less than
     128 elements. Now this problem has been fixed. On top of that the GribExaminer
     now handles only GRIB_API keys with the type of long, double and string (the
     other types such as  bytes are omitted).

    .files: libUtil/GribMetaData.cc
    .date:  2011-06-14

87fi Graph: automatic updates for Cartesian view and visdefs

    .If an application sets X/Y axis type to DATE then updates the cartesian
	view automaticaly. If applications (GEO)_SCATTER or (GEO)_VECTOR_SCATTER set
	parameter *_VALUES and there is no visdef attached (e.g. a visdef default
	should be used) then the advanced mode parameter should be set automatically
	in MSYMB or MWIND.

    .files: uPlot/CartesianView.*, DataObject.*, DataBuilder.cc
    .date:  2011-06-14

86ir Added new macro functions for list processing

    List functions now available include unary operators such as abs(),
    cos(), etc and binary operators such as +, -, >, min, etc. These are the
    same set of basic operators and functions that are available for fieldsets,
    geopoints, numbers and vectors. Binary operators between two lists
    will fail if the lists contain different numbers of elements; otherwise,
    the result will be a new list, where each element is the result of
    applying the operator to each of the corresponding elements in the
    input lists. List elements can be of any type, as long as it is legal
    to perform the operation on elements of that type.
    Lists are not recommended for computations with many (thousands) of values;
    for this, the vector data type is significantly more efficient.
    Examples of the new list operations:
      a = [1,2,3]
      b = [4,1,6]
      c = [|1,2,3|, |4,5,6|, [7,8,9]]  # vector,vector,list
      d = [10, 20, 30]
      print (a + b)    :  output is [5,3,9]
      print (max(a,b)) :  output is [4,2,6]
      print (max(a,2)) :  output is [2,2,3]
      print (a - 5)    :  output is [-4,-3,-2]
      print (sqrt(b))  :  output is [2,1,2.44948974278]
      print (c + 10)   :  output is [|11,12,13|,|14,15,16|,[17,18,19]]
      print (c + d)    :  output is [|11,12,13|,|24,25,26|,[37,38,39]]
    The complete list of operators is: +,-,/,*,^,>,<,>=,<=,=,<>,and,or,
    mod,div,max,min,neg,not,sgn,int,log10,log,exp,sqrt,sin,cos,tan,asin,acos,
    atan,abs.

     .files: Macro/mlist.cc
     .date: 2011-06-13

85fi Synergy between a "Manager" service application and uPlot

    .uPlot was creating a second empty window when processing a "Manager" service
	application, such as the OdbManager. The solution was to force these type of
	applications to create a SKIP request, instead of a xxx_MANAGER, if the
	processing was a result of a DROP action or a Macro program.

    .files: uPlot/MapView.cc, Odb/OdbManager.cc
    .date:  2011-06-08

84ir Added new macro functions: sum(vector) and mean(vector)

    .sum(vector) returns the sum of all non-missing values in the
     input vector.
     mean(vector) returns the mean of all non-missing values in the
     input vector.
     In both cases, if there are no valid input values, then 'nil'
     is returned.

     .files: Macro/mvector.cc
     .date: 2011-06-008

83ir Macro function set_gridvals had error when input is more than 1 field

    .Now corrected.

     .files: Macro/grib.cc
     .date: 2011-06-008

82sk Add ODB to the command line version of the examiners

    .The command line version of the examiners now accepts ODB databases
     as input. Can be launched as: metview -e odb <path_to_odb_database>

     .files: scripts/metview_base, ExamineBase/MvExamineBase.cc,
             OdbExaminer/MvMain.cc
     .date: 2011-06-04

81fi New applications: InputManager and TableManager

    .First version.

    .files: etc/Makefile.am,ObjectList,uPlotTable, icons/Makefile.am,
		  StdAppManager/Makefile.am,ObjectSpec.StdAppManager,StdAppManager.cc,
		  uPlot/MagicsTranslator.cc,uPlotManager.cc
    .date:  2011-06-03

80ir Modified macro function read_table() to accept table-parsing parameters

    .Macro function read_table() can now take a definition as its input,
     specifying the TABLE_READER class parameters to control the
     parsing of the table file.
     Also, the table reading code is more tolerant of blank lines in input
     files: if only one column of data is in the file, then a blank line
     is interpreted as a missing value; if more than one column, then the
     line is ignored.

    .files: libUtil/TableReader.[cc,h], libMetview/MvTable.[cc,h],
            Macro/mtable.cc, Macro/include/ctable.h
    .date:  2011-05-31

79fi Fixed multi-pages creation problem using Cartesian View

    .It is now possible to create multi-pages with Cartesian View, instead
     of a single page only.

    .files: uPlot/CartesianView.cc
    .date:  2011-05-31

78fi Removed connection between StdAppManager and Hovmoeller/XSect applications

    .Hovmoeller and XSect applications are now calling uPlotManager directly,
     without going through the StdAppManager application.

    .files: Macro/request.cc, Hovmoeller/HovToolkit.cc, XSection/XSect.cc
    .date:  2011-05-26

77fi Introduce multipages and multiplots in Macro

    .It is now possible to define the following plot commands:
		plot(dw[1],title,datax,contour)
		plot(dw[2],datay)
		setoutput(another_output)
		plot(dw[1],title,datax,contour,dw[2],datay)

    .files: Macro/script.*, main.cc, request.cc
		  uPlot/OutputFormatAction.cc, Presentable.cc, Root.*,
		  SuperPage.cc, uPlotBatchApp.cc
    .date:  2011-05-24

76ir Ensure that 'Ecfs' module is ready for new ECFS implementation

    .The new implementation will deprecate the Ecp command, so we must
     use 'ecp' instead.

    .files: Ecfile/Ecfile.cc
    .date:  2011-05-23

75sk Enable WMS Client to handle fractional ISO8601 dates

    .The WMS Client can now handle fractional ISO8601 dates (e.g. 1991-01)
     appearing in the TIME dimension.

    .files: OgcClient/MvQOgcRequest.[h,cc]
    .date:  2011-05-17

74sk Adjust the WMS bounding box for zoom

    .When zoom is performed for WMS images the bounding box in the
     WMS GetMap request is automatically adjusted to the new map area
     and a new WMS image set is loaded and visualised. This solution
     always guearantees an optimal WMS image size and resolution
     for the current map area.

    .files: uPlot/Page.[h,cc]
    .date:  2011-05-16

73ir Macro functions thickness() and unithickness/pressure() were not compatible with GRIB 2

   .These functions were setting GRIB_API key 'topLevel'; now they set 'level'.

   .files: Macro/grib.cc
   .date:  2011-05-16

72ir Some lex/yacc generated files were distributed with the tarball

   .The intention was to allow the installed to avoid installing lex
    and yacc; but we should not distribute those files so we now don't.
    This means that installers of Metview should now ensure that
    lex and yacc are installed on their systems.

   .files: Makefile.am, libMars/Makefile.am, Macro/Makefile.am, libMars-Odb/Makefile.am
   .date:  2011-05-11

71fi Added "send reply" command to all Examiners

   .Send reply to the "sender" module (MetviewUI). This will turn icon to green;
    otherwise, it will stay orange.

   .files: OdbExaminer/MvMain.cc, OdaExaminer/MvMain.cc, NcExaminer/MvMain.cc
		 GribExaminer/MvMain.cc, BufrExaminer/MvMain.cc
   .date:  2011-05-11

70fi Removed all axes check from CartesianView

   .uPlot is no longer checking the axes consistency between the data
    and the view.

   .files: uPlot/CartesianView.*
   .date:  2011-05-11

69ir Potential Temperature module not working on ecgate

   .This was due to the different sizes of different types of integer.

   .files: libMars/macro_api_f90.f90
   .date:  2011-05-10

68fi Replaced keyword CSV to TABLE

   .TABLE keyword is more generic than CSV.

   .files: several files in uPlot, etc and icons.
   .date:  2011-05-09

67fi Added CSV Manager first version

   .In this first version, only INPUT_LIST action is accepted.

   .files: several files in uPlot, etc and icons.
   .date:  2011-05-05

66fi Added Layout first version: single plot command

   .In this first version, the following plot command is accepted:
	plot(dw[1],data,visdef,dw[2],data2,visdef2,...)

   .files: several files in uPlot and Macro directories
   .date:  2011-05-05

65vk Added command-line option to launch a data examiner

   .A data examiner can now be launched for a given file with the
    syntax:
      metview -e <type> <path>
    where <type> is a valid data type such as grib or bufr.

   .files: ExamineManager/*
   .date:  2011-05-05

64ir Added query-by-name to table code in Macro

   .The macro function value(table, ...) can now accept a string as its
    second argument - if a field of this name exists in the file, then
    its values will be returned.

   .files: libUtil/TableReader.[cc,h],
           libMetview/MvTable.[cc,h]
           Macro/mtable.cc include/ctable.h,
   .date:  2011-04-28

63ir Metview can now read simple ASCII table files, e.g. CSV

   .Current functionality: can recognise a CSV file from its filename
    extension (.csv); can edit using the Macro editor; can read in Macro
    and extract columns as vectors or as lists of strings (automatically
    determined from the first line of data); functions are:
      read()  - read a file into a 'table' variable
      count() - return the number of columns
      name()  - returns the name of the indexed column
      value() - returns a vector or a list of strings for the indexed column

   .files: libUtil/TableReader.[cc,h],TableFormatAttributes.h,Makefile.am,
           libMetview/MvTable.[cc,h],MvScanFileType.cc,
           MacroEditor/LanguageHelperFactory.cc,
           Macro/value.cc,mtable.cc,files.cc, include/value.h,ctable.h,
           icons/TABLE.[svg,xpm], etc/ObjectList
   .date:  2011-04-27

62ir Macro error message sometimes gives the name of the wrong function (Roger Brugge)

   .For example, if a macro calls functiona() and then afterwards tries to call
    a non-existent functionb(), the error message suggests that the error
    occurred within functiona(), even though we were outside it at the time.
    The solution was to  backup and restore the pointer to the current
    context.

   .files: Macro/context.cc
   .date:  2011-04-12

61ir Potential Temperature module crashing with multiple fields (Sylvie Malardel)

   .The Potential Temperature module was crashing when more than one
    temperature field was given to it. This was because of a premature
    memory deallocation.

   .files: PottF/pott.F,eqpott.F,seqpott.F
   .date:  2011-04-07

60fi Improved interaction among MetviewUI, uPlot and  WmsClient

   .When an icon is dropped in uPlot, it now not only acknoledges the dropping
    but also adds the View information (if defined) to the request returned to
    MetviewUI. With this extra information, WmsClient will be able to build
    an image customised to the specific geographical area.

   .files: MetviewUI/DragWindow.cc, Drop.*, InternalTask.h, MacroRunTask.h,
	   MetviewTask.*, ShellTask.h, Task.h; uPlot/uPlotBase.cc;
	   libMvMotif/drop.*
   .date:  2011-03-29

59fi Changed default uPlot Print range selection

    .The default 'Print range' was changed from 'Print all' to the current plot.

    .files: uPlot/uPlotBase.cc
    .date:  2011-03-22

58ir Use of 'pure' GRIB_API-based Mars client (now Metview 4.0.3)

   .Updated Mars client to use the 'pure' GRIB_API-based version.
    Also uses emoslib 381 .
    Updated version number to 4.0.3.

   .files: libMars/*, version.sh
   .date:  2011-03-09

57fi Hovmoeller "Expand" option was not using the previous axes information (Antje Inness)

   .Expand was using the axes default, instead of taking the information from the
    netcdf file.

   .files: Hovmoeller/HovToolkit.*
   .date:  2011-03-08

56ir Macro function datainfo() was not releasing memory (Philippe Lopez)

   .When looping through the GRIB fields, the fields were not being
    released. They are now.

   .files: Macro/grib.cc
   .date:  2011-03-02

55ir Added minvalue(vector) and maxvalue(vector) macro functions (Florian Pappenberger)

    .Added minvalue(vector) and maxvalue(vector) functions with sam
     functionality as for fieldsets and geopoints. If there are no
     valid values, then nil is returned.

    .files: Macro/mvector.cc
    .date:  2011-02-25

54fi New Netcdf Examiner

    .This new application is based on Qt and will replace the one based on Motif.

    .files: etc/Services,ObjectList, NcExaminer/NcExaminer.*, libMvNetCDF/MvnetCDF.*,
	    libMvQtGui/MvQAbout.*,MvQFileInfoLabel.*, libUtil/MvVersionInfo.*
    .date:  2011-02-25

53ir Vector arguments to inline Fortran/C macro too slow (Florian Pappenberger)

    .When vector arguments were being passed to inline macro functions,
     their corresponding request contains all the data values. This is
     slow to generate using the standard Mars funtions. Now, vectors
     are written to temporary files (just basic memory dumps with a small
     header). This format may change in the future. The actual request passed
     is now just a path to this file. A small side-effect of this is that
     the user can now write a vector to a file:
       write ('/path/to/file', vector)
     This is not really encouraged though, because the format may change,
     and such files may not be readable on other systems.

    .files: libMars/macro_api.c, Macro/mvector.cc, Macro/include/value.h
    .date:  2011-02-23

52ir Vector arguments to inline Fortran/C macro printed (Florian Pappenberger)

    .When vector arguments were being passed to inline macro functions,
     the values of their requests were being printed. In the case of
     large vectors, this could generate a very large log file and waste
     time. This is now only done in debug mode.

    .files: Macro/mvector.cc
    .date:  2011-02-22

51ir Some GRIB 2 fields not being properly interpreted (Peter Bechtold)

    .Some GRIB_API keys were not correct for GRIB 2. Now changed to more
     generic names.

    .files: libMetview/MvFieldSet.cc, Macro/grib.cc
    .date:  2011-02-17

50vk Fixed a memory bug in BUFR in 64bit systems

    .sizeof(long) was used instead of sizeof(fortint) in memory extimate
     resulting not enough memory for a BUFR message.

    .files: MvObs.cc
    .date:  2011-02-17

49fi Enable uPlot to handle ODB_MANAGER and NETCDF_MANAGER

    .Also added 3 ODB new functions to uPlot: XY_POINTS, XY_VECTORS, XY_MATRIX.
     These are members of the ODB_MANAGER family icon.

    .files: etc/uPlotTable,ObjectList, uPlot/MagicsTranslator.cc,SkipAction.*,
	    uPlotManager.cc,Makefile.am, StdAppManager/StdAppManager.cc,
	    Odb/ObjectSpec.Odb
    .date:  2011-02-16

48ir Reprojection module not being built (Thomas Haiden)

    .The Reprojection module has not been buildable for some time. Changes
     in Magics and Metview have now enabled it to be built. The output
     differs by one row and one column compared to the version built in
     Metview 3, and it now uses missing values for pixels outside the
     valid area.

    .files: Reprojection/ReprojectService.[cc,h], Reprojection.h
    .date:  2011-02-16

47ir uPlot not starting up in some installations (Angel, Montenegro)

    .MAGPLUS_HOME was set correctly for a development version of Metview,
     but when installed into a directory other than where Magics was
     installed, MAGPLUS_HOME was wrong.

    .files: scripts/metview_base
    .date:  2011-02-15

46fi Added 3 ODB new functions to uPlot: XY_POINTS, XY_VECTORS, XY_MATRIX

    .These 3 new functions are members of the ODB_MANAGER family icon

    .files: etc/uPlotTable, uPlot/MagicsTranslator.cc
    .date:  2011-02-15

45sk Enable WMS Client usage in macro

    .The WMS Client can now be used in macro via the wmsclient macro command.

    .files: OgcClient/MvMain.cc, MvQWmsClient.cc, ObjectSpec.WmsClient,
            WmsClientDef
    .date:  2011-02-14

44sk Change initial directory of the file save dialog of icons

    .Certain icons have a "save" item in their context menu. This brings up
     a file selection dialog whose initial directory is now set to the
     folder of the icon.

    .files: AppMod/savepool.cc
    .date:  2011-02-10

43sk Add save and examine actions to ODB Manager

    .The resulting ODB of the ODB/SQL query in the ODB Manager icon can now
     be examined and saved.

    .files: AppMod/savepool.cc, Odb/ObjectSpec.Odb,
            OdbExaminer/MvMain.cc
    .date:  2011-02-10

42ir Macro function nearest_gridpoint() now accepts vector locations

    .New mode:
      vector or list nearest_gridpoint(fieldset, vector, vector)
     Updated function description:
     Returns the value of the nearest point to a given location in each field
     of a fieldset. If a list is given, it must contain two numbers -
     latitude and longitude. If two numbers or vectors are given, the first
     is the latitude(s), the second the longitude(s).The field must be a lat-long
     field. If the fieldset has only one field, a number or vector is returned;
     otherwise a list is returned. Where it is not possible to generate a sensible
     value due to lack of valid data in the fieldset, a 'nil' is returned in
     the case of a single coordinate, or vector_missing_value in the case of
     a vector.
     A performance test which extracted 20000 points from a set of 6 fields
     showed that the vector version took 0.27u/0.01s CPU, whereas peforming
     a loop to extract the same points took 46.02u/1.63s CPU.

    .files: Macro/grib.cc
    .date:  2011-02-09

41ir New macro function: fieldset indexes(fieldset, vector)

    .Given a fieldset and a vector of target values, this function finds
     for each gridpoint the indexes of the nearest values in the target.
     Indexes are zero-based and will always have a minimum value of zero
     and a maximum value equal to the index of the last element of the
     target vector. A value lying between two values in the vector will
     use the index of the nearest value; if equidistant, then the higher
     value is used.
     The input vector MUST be sorted in ascending order.
     Example: if these are our inputs:
     -
     GRIB:  10, 20, 30, 40     VECTOR:  | 5, 10, 15, 20, 25, 30  |
            15, 25, 35, 45
             8, 4,  20, 11
     -
     then our output would be a new GRIB, with values equal to the input
     values' positions in the input vector:
     -
     GRIB:  1, 3, 5, 5
            2, 4, 5, 5
            1, 0, 3, 1
     -
     A missing value in the input field will result in a missing value in
     the output field.

    .files: Macro/grib.cc
    .date:  2011-02-09

40ir Magics messages were not being printed in batch mode

    .Re-arrangement of code. Errors and warnings now printed, info
     goes to the logs.

    .files: uPlot/uPlotBase.[cc,h],PlotMod.[cc,h],PlotModBatch.[cc,h],
            PlotModInteractive.[cc,h]
    .date:  2011-02-03

39ir Fixed the 'legacy' inline fortran macro interface for 64-bit platforms

    .This code was not working on 64-bit AIX because of the fact that a fortran
     integer is not necessarily the same size as a 'C' long or a pointer.

    .files: libMars/macro_api.[c,h]
    .date:  2011-02-02

38sk Improve the interface for the "Plain" editor mode in the WMS Client

    .The WMS Client in the "Plain" editor mode prevously only allowed the
     direct editing of the GetMap request. Now this interface was redesigned
     and each WMS parameter can be edited separately. A new dialog was
     also added to enable users to import arbitrary GetMap requests
     into the editor.

    .files: libMvQtGui/Makefile.am, MvQTextDialog.[cc,h]
    	    OgcClient/MvQOgcRequest.[cc,h], MvQWmsClient.[cc,h],
	    	      MvQWmsClientEditor.[cc,h]
    .date:  2011-01-27

37fi Added uPlot Print range selection

    .There are two options to select frames to be printed: All and Range.
     Also, there is an option to select the number of copies.

    .files: uPlot/PlotAction.cc, SuperPage.cc, PlotMod.cc, uPlotBase.cc
    .date:  2011-01-25

36ir Replaced configure option '--enable-batch-only' with 'disable-ui'

    .This small change should be less confusing to installers.

    .files: configure.ac
    .date:  2011-01-24

35fi Added uPlot Export frame selection

    .There are three options to select which frames will be exported: Current,
     All and Range.

    .files: ~magics/basic/Layer.cc, uPlot/ExportDialog.cc, SuperPage.cc
    .date:  2011-01-24

34sk Improve tree view scrolling performance for the GRIB and BUFR Examiners

    .The message tree views in the GRIB and BUFR Examiners are now able to
     scroll large number of rows very quickly.

    .files: libMvQtGui/MvQAbstractExaminerBase.cc
    .date:  2011-01-21

33ir Small issues in Macro Editor

    .The autoindent functionality had some peculiarities if the cursor
     was not at the start or end of a line. Additionally, the block
     indent functionality did not work quite properly.

    .files: Macro/MacroEdit.cc,mvplaintextedit.cc
    .date:  2011-01-21

32sk Add data viewer to ODB Examiner

    .A data viewer tab was added to the ODB Examiner to show all the values
     of the inspected ODB.

    .files: OdbExaminer/OdbExaminer.[cc,h], MvQOdbModel.[cc,h]
            libUtil/MvOdb.[cc,h]
    .date:  2011-01-21

31vk Fixed Macro-With-Parameters

    .Macro-With-Parameters got broken when MvRequest::merge() function
     was changed to accommodate editor conversion Mv3 -> Mv4. Fixed by
     introducing MvRequest::mars_merge() to do the old stuff, and make
     MetviewUI call the new function for Macro-With-Parameters.

    .files: libMetview/MvRequest.h, libMetview/MvRequest.cc,
            MetviewUI/MacroParam.cc, MetviewUI/MacroParamState.cc
    .date:  2011-01-20

30ir Macro vector access expanded

    .The full set of ways to access a subset of a list was added to the
     vector data type in Macro, ie vector[i], vector[first, last],
     vector[first, last, step]. Also, a additional fourth parameter is
     now accepted (for vectors only): if supplied, it specifies how
     many elements to extract from the current step. For example,
       vector[1, 20, 5, 2] will create a new vector with elements
     from these indexes: 1,2,6,7,11,12,16,17.
     Additionally, it is now possible to assign a vector to an indexed
     position in another vector, for example: v[4] = |99,99,99|. In this
     example, elements 4, 5 and 6 of v will be replaced.

    .files: Macro/mvector.cc
    .date:  2011-01-14

29ir Macro function values(netcdf) now returns a vector

    .The macro function values(netcdf) was returning a list of numbers,
     which could be very slow; this was changed to return a vector.

    .files: Macro/netcdf.cc
    .date:  2011-01-12

28sk WmsClient now handles SRS for WMS versions 1.1.0 and older

    .The SRS was not correctly parsed in the GetCapabilities documents for
     versions 1.1.0 and older. Now the whitespace separated list specified
     for the SRS in these versions are split into individual values.

    .files: OgcClient/MvQWmsClient.cc,MvQWmsClientEditor.cc
    .date:  2011-01-11

27fi Revise Macro set output drivers

   .Define output requests according to the following rules/priorities:
	1. Drivers defined in the "plot" command have top priority (overwrite "setoutput")
	2. Drivers defined in the "setoutput" command have second priority
	3. If neither 1 or 2 is defined then output goes to "screen"

   .files: Macro/request.cc,script.cc, uPlot/uPlotManager
   .date:  2011-01-11

26ir NetCDF examiner was crashing on 64-bit Linux platforms

   .Some Motif calls were being passed '0' instead of 'NULL', and this was
    causing a crash on 64-bit Linux (and might have also been responsible
    for slightly strange behaviour on 32-bit platforms).

   .files: NcBrowse/NC_comp.cc
   .date:  2011-01-10

25ir Revise and expand the use of the vector data type in Macro

   .In functions such as gridvals() which return a large list of numbers, the
    use of the vector data type is much more efficient. As the accessing of
    vector elements is identical to the accessing of list elements, it was
    decided to change a number of macro functions which currently return
    a list of numbers to return instead a vector. This also prompted a
    development of the functions available on vectors.
    Vector functions now available include unary operators such as abs(),
    cos(), etc and binary operators such as +, -, >, min, etc. These are the
    same set of basic operators and functions that are available for fieldsets,
    geopoints and numbers.
    Revised functions:
      In addition, the following existing functions were modified in order to return or
      accept vectors instead of lists:
        gridvals(), grib_get_long_array(), grib_get_double_array(),
        average_ew(), average_ns(),
        level(geopoints), latitude(geopoints), longitude(geopoints), value(geopoints),
        value2(geopoints), value(odb).
      The following functions on geopoints now accept either a list of numbers or a
      vector as input:
        set_latitude(), set_longitude(), set_level(), set_date(), set_time(),
        set_value(), set_value2()
    New macro functions:
      The following are new macro functions:
        set_gridvals(fieldset, vector) - takes a vector or a list of vectors as input;
                                         if a single vector, then it is applied to
                                         all fields;
                                         if a list of vectors, then there must be the
                                         same number of vectors as there are fields.
        gridlats(fieldset), gridlons(fieldset) - return vectors.
        tolist(vector) - convert a vector to a list of numbers
                         (missing values become 'nil').
    Missing values:
      New functions are available for converting missing values:
        bitmap(vector,number) and nobitmap(vector,number) .
      A new global variable, vector_missing_value, now exists for the purpose of testing
      vector elements. Missing values derived from fieldsets and geopoints variables
      are honoured.
    Concatenation:
      Can concatenate 2 vectors, e.g. c = a & b
      Can append a number to a vector, e.g. v = v & 7
    Building a vector:
      The most efficient way to build a vector is to pre-allocate and then fill:
        a = vector(num_elements)
        for i = 1 to num_elements do
          a[i] = i
        end for

   .files: Macro/mvector.cc,grib.cc,codb.cc,value.h
   .date:  2010-12-21 - 2011-01-05

24sk Add float value sorting to the key lists in the examiners and uPlot

   .The float values are now properly sorted in the key lists of the examiners
    and in the frame list of uPlot.

   .files: libMvQtGui/MvQKeyProfileModel.cc
   .date:  2010-12-15

23sk Added ODB/SQL query interface to ODB Manager

   .The ODB Manager is now able to perform ODB/SQL queries. With this solution
    ODB databases can be directly visualised by the ODB Manager.

   .files: configure.ac, src/Makefile.am
   	   various files in Odb/, OdbFilter/ and StdAppManager/
   .date:  2010-12-14

22ir The gridvals() macro function can be slow with large datasets

   .This is because it returns a list. Added an optional second parameter
    which can be either 'list' or 'vector' so that the user can specify
    whether the function returns a list or a vector. Vectors are much
    faster.

   .files: Macro/grib.cc
   .date:  2010-12-13

21fi Added new Output Formats to the Export function

   .The following output formats are now available: ps, pdf, eps, kml, png, svg

   .files: uPlot/ObjectSpec.OutputFormats, etc/ObjectList, EPSOutputDef,
    	   KMLOutputDef, PDFOutputDef, PNGOutputDef, SVGOutputDef
   .date:  2010-12-13

20fi Added error handling to uPlot Export icon function

   .An error message window informs the user that an error was detected.

   .files: uPlot/ExportDialog.*
   .date:  2010-12-06

19fi Added frames selection option to uPlot Export icon function (Sandor)

   .Users can select which frames to be exported via 3 options: Current frame,
    All frames and Range of frames (e.g. 1,3-5,6,...).

   .files: uPlot/ExportDialog.*, MagicsGraphicsEngine.cc, SuperPage.cc, uPlotBase.cc
   .date:  2010-12-03

==============================================================================
           2010-12-06 Metview 4.0.1 released for export
==============================================================================

18ir Revision of DivRot module code and addition of new functionality

   .The Divrot code was not going through exactly the same pathway
    as the Mars client does in order to derive wind components from
    vorticity and divergence. It now does. There is also a new mode,
    UVWIND, macro function uvwind() for more efficient computation
    of U/V from VO/D.

   .files: Divrot.cc,Divrot.h,Divrot/divrot-exFortran.cc,share/metview/etc/DivrotDef
   .date:  2010-11-22

17fi Added automatic macro generation code for the ODB Manager module (Sandor)

   .Also the indentation scheme in the Macro text file has changed.

   .files: uPlot/ObjectInfo.*, MacroConverter.cc,
   		   OdbFilter/OdbFilter.cc, OdbDef,
		   Macro/mvimport.c
   .date:  2010-11-19

16fi Visualization problem with fieldset containing single and companion fields (Vesa)

   .Magics now receives a request with one dataset for single fields and another dataset
    for companion fields.

   .files: uPlot/MagicsGraphicsEngine.cc, MagicsTranslator.cc, MapView.cc
   .date:  2010-11-16

15fi Accept any combination of MV3 and MV4 visdefs drops (Vesa)

   .For each dataunit, uPlot now updates the request to be sent to Magics with
    all the related visdefs under a new parameter called VISDEFS. Also, uPlot now
    accepts any combination of the new and old visdefs definitions.

   .files: uPlot/MagicsGraphicsEngine.cc, MagicsTranslator.*, ObjectInfo.cc
   .date:  2010-11-12

14ir Geopoints dropped into the Macro Editor generated bad code

   .Dropping a geopoints file in the editor generated a call to function
    'metview()' which is not correct. It now generates a read() function
    call.

   .files: Macro/mvimport.c
   .date:  2010-11-11

13sk Added service expception handling for WMS 1.3.0 in WmsCLient

   .WmsClient was not able to handle service exceptions for WMS version
    1.3.0. Now these XML files are correctly parsed and the contents is
    displayed in log area.

    .files: OgcClient/MvQWmsClient.cc
    .date: 2010-11-08

12sk Added support for fixed-size images in WmsClient

   .WmsClient now is able to handle WMS layers with a fixed image size

   .files: OgcClient:MvMain.cc MvQOgcParam.[cc,hh] MvOgcRequest.[cc,hh]
                     MvQWmsClient.cc WmsClientDef
   .date:  2010-11-05

11ir Added 'Insert Code Template' dialog to Macro Editor

   .Metview's Macro Editor now has the ability to provide a list of code
    templates (programming language-specific) to the user for insertion.

   .files: MacroEditor/various
   .date:  2010-11-03

10ir Openjpeg library not linked when GRIB_API needs it

   .Metview's configure script was not taking into account the possibility
    that GRIB_API could have been built with openjpeg support. Now it does.

   .files: configure.ac
   .date:  2010-11-02

9ir Macro Editor was showing as an unknown icon in the Process Monitor

   .MetviewUI was not adding a _CLASS parameter to the request. Now it
    uses the class of the type of file being edited, and therefore
    the corresponding icon will be displayed in the monitor.

   .files: MetviewUI/QtMacroEditor.cc
   .date:  2010-11-01

8ir Various editors and examiners could only have 6 instances

   .Specifically the Macro, WMS and WCS editors, and the GRIB, BUFR and
    ODB examiners were limited to MARS_MAXFORKS instances. They can now
    have up to 25 instances each.

   .files: etc/Services, other ObjectSpec files
   .date:  2010-11-01

7ir Macro Editor now handles Shell icons

   .Editing a Shell icon in the user interface now invokes the macro editor,
    which can now run the script and display its output in its log.

   .files: MacroEditor/(various files)
   .date:  2010-10-28

6ir Fixed inline C/Fortran macro functions mci_fail and mfi_fail

   .Zero-length strings were being used, seemed to work by accident sometimes.

   .files: libMars/macro_api.c
   .date:  2010-10-25

5ir New Macro function grib_set_string (Mark Rodwell)

   .Added new Macro function grib_set_string()

   .files: libMetview:MvFieldSet.h, MvGrid.[cc,h], Macro/grib.cc,
           etc/macro_list_builtin.txt, etc/macro_calltips_builtin.txt
   .date:  2010-10-25


4sk Handling whitespaces in WMS GetCapabilities documents. (Marc Rautenhaus, DLR)

   .WmsClient did not handle whitespaces within data nodes in the GetCapabilities
    document. This problem was solved by using the "normalize-space" XQuery
    function.

   .files: src/OgcClient/MvQWmsClient.cc
   .date:  2010-10-25

3sk Fix compilation related bug for find.qrc (Matthias Langer, ZAMG)

   .After "make clean" in src/OgcClient find.qrc.cpp was not generated.
    This bug has been fixed.

   .files: src/OgcClient/Makefile.am
   .date:  2010-10-21

2sk Add service and layer meta data to the output generated by WmsClient.

  .Service and layer meta data are now added to the PRasterLoop output generated
   by WmsClient. This information is finally displayed in uPlot's layer
   meta data widget.

   .files: src/OgcClient/MvMain.cc
   	   src/OgcClient/MvQWmsClient[cc,h], src/OgcClient/WmsClientDef
   .date:  2010-10-19

1sk Add new widget to uPlot to display layer meta data.

  .uPlot's Layers tab now contains a layer information widget displaying the layer
  meta data.

   .files: src/uPlot/Makefile.am
   	   src/uPlot/MvQLayerModel[cc,h], src/uPlot/MvQLayerWidget[cc,h],
   	   src/uPlot/layerInfo.css src/uPlot/uPlot.qrc
   .date:  2010-10-19

0sk Check data type in the ODB Manager.

  .ODB Manager can only work with ODB data. Now the input data (either spcified
   by an icon or by the data path) is checked rigorously.

   .files: src/StdAppmanager/StdAppManager.cc, src/libMetview/MvScanFileType[cc,h]
   .date:  2010-10-01

==============================================================================
           2010-09-30 Metview 4.0.0 released internally and for export
==============================================================================
