Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The advantages of using shared libraries are that the size of executables will be smaller and that a different version of Magics can be used without recompiling the executable (if the libraries are binary compatible).

Requirements

...

Compilers
C++  
Fortran 

The following list of software should be installed on your system before you try to install Magics. If you use a package manager, such as RPM, to install software make sure to include the corresponding development packages with the header files. The configure script will test for these libraries and give error messages if one of them is missing.

  1. CMake
  2. NetCDF library with C++ interface (http://www.unidata.ucar.edu/software/netcdf/)

  3. Expat XML parser

  4. Perl XML-Parser (most of the time it comes with Perl, but if not: XML-Parser)
  5. GhostScript (especially the fonts!)

  6. Boost C++ library (http://www.boost.org )

  7. Proj4 projection library (http://trac.osgeo.org/proj/)
  8. SWIG to build the Python interface

Optional for raster output (PNG) you should also install:

  1. Cairo graphics library (1.4.10 or later - www.cairographics.org)

     

ECMWF support libraries

To read GRIB and BUFR data formats these two libraries, provided by ECMWF without charge, need to be installed on your system before Magics is installed:

  1. GribAPI ( 1.9.9 or higher ) - https://software.ecmwf.int/wiki/display/GRIB/Releases

  2. EmosLib ( 376 or higher) - https://software.ecmwf.int/wiki/display/EMOS/Releases

When installing these two packages please be aware of the following:

...

GribAPI should be installed first

...

Magics internally works only in double floating point precision and therefore requires the double precision version of EmosLib.

...

EmosLib requires a Fortran 90 compiler with Cray pointer support (Portland Pgf90 7.2 and GFortran 4.2 and newer).

If fortran or bufr support needed
Utilities

make

  
cmake  
Python Support
swig to generate the python interface
python/python-numpy  
python-numpy  
Third party libraries
proj Proj4 to handle projections
boost used for coastlines
netcdf if netcdf support neeed
pango if png/jpeg support needed
Ecmwf libraries
grib-api if grib support needed
odb-api if odb support needed
emoslib if bufr support needed

...

Compilation environment

At ECMWF, OpenSuSE 10.3/11.3 Linux systems (32 and 64bit) were used for testing. Any C++ Compiler which supports features required for the ANSI C++ standard from 1998 (STL, namespaces, templates) should work. At ECMWF we tested GCC’s g++ 4.x successfully. A Fortran compiler is not required for the compilation of Magics, but is needed if you want to use the Fortran interface or compile a dependent Fortran library (Emoslib).

...

After the CMake command has run successfully, the user can compile the library by typing make in the same build directory.

Testing your build

...