2015-03-16 17:50:45 +00:00
|
|
|
/*! \mainpage ecCodes
|
2013-03-25 12:04:10 +00:00
|
|
|
|
|
|
|
\section new New
|
|
|
|
|
|
|
|
- <a href="/publications/manuals/grib_api/conversion.html">GRIB edition 1 to 2 conversion</a>
|
|
|
|
- <a href="/publications/manuals/d/gribapi/param/">Parameters in GRIB API</a>
|
|
|
|
- <b> GRIB API keys </b>
|
|
|
|
- <a href="/publications/manuals/d/gribapi/fm92/grib1/">GRIB edition 1 </a>
|
|
|
|
- <a href="/publications/manuals/d/gribapi/fm92/grib2/">GRIB edition 2 </a>
|
|
|
|
- <a href="/publications/manuals/d/gribapi/keys/">Edition independent</a>
|
|
|
|
|
|
|
|
|
|
|
|
\section overview Overview
|
|
|
|
|
2016-07-11 10:37:33 +00:00
|
|
|
ecCodes is the application program interface developed at ECMWF
|
2013-03-25 12:04:10 +00:00
|
|
|
to provide an easy and realiable way for encoding and
|
|
|
|
decoding WMO FM-92 GRIB
|
|
|
|
<a href="http://www.wmo.ch/pages/prog/www/WMOCodes/Manual/WMO306_vol-I-2-PartB-GRIB1.pdf">edition 1</a> and
|
|
|
|
<a href="http://www.wmo.ch/pages/prog/www/DPS/grib-2.html">edition 2</a> messages.
|
|
|
|
|
2016-07-11 10:37:33 +00:00
|
|
|
The ecCodes library is written entirely in C and some command line \ref tools "tools" are
|
|
|
|
provided to give a quick way to manipulate GRIB and BUFR data. Moreover a \ref eccodes "Fortran interface 90" is available
|
|
|
|
giving access to the main features of the C library.
|
2013-03-25 12:04:10 +00:00
|
|
|
|
|
|
|
The library is designed to access and modify messages in both editions with the same
|
|
|
|
\ref get_set "function calls" using a set of \ref keys to access the coded information
|
2015-03-17 13:19:09 +00:00
|
|
|
( examples: \ref grib_get_keys.f90 "grib_get_keys.f90" \ref set.f90 "set.f90", \ref grib_get_keys.c "grib_get_keys.c", \ref set.c "set.c", \ref grib_get_examples "grib_get", \ref grib_set_examples "grib_set" ).
|
2013-03-25 12:04:10 +00:00
|
|
|
|
|
|
|
The \ref keys "keys" available for a message are different depending not only on the edition
|
|
|
|
but also and mainly on the type of each message and the information it contains.
|
|
|
|
A list of all the available keys in a message can be obtained dynamically using the
|
|
|
|
library as shown in \ref keys_iterator.c "keys_iterator.c" or using the \ref tools
|
|
|
|
as shown in \ref grib_dump_examples "grib_dump" or \ref grib_keys_examples "grib_keys".
|
|
|
|
|
|
|
|
GRIB API will replace the GRIBEX function and a
|
|
|
|
<a href="/publications/manuals/grib_api/gribexkeys/callGribex.html">table of conversion</a> between the
|
|
|
|
numeric encoding of GRIBEX and the alphanumeric keys of GRIB API is provided to help
|
|
|
|
the migration.
|
|
|
|
|
|
|
|
To learn how to use the grib_api we recommend the user works through the \ref grib_examples.
|
|
|
|
|
2016-07-11 10:37:33 +00:00
|
|
|
Reference manuals are also provided for the C library (organized in \ref modules), for the
|
|
|
|
\ref eccodes "Fortran 90 interface" and for the \ref gribapi "Python interface".
|
|
|
|
|
2013-03-25 12:04:10 +00:00
|
|
|
|
|
|
|
\ref installation "Installation" instructions are also provided.
|
|
|
|
|
|
|
|
\section ecwf_users Compiling and linking on ECMWF platforms
|
|
|
|
|
|
|
|
The grib API is installed on all systems at ECMWF with both its components: the library
|
|
|
|
and the tools.\n
|
|
|
|
The latest version of the tools is always available in the system PATH so that
|
|
|
|
users can begin using the tools immediately by typing directly the tool name (\ref tools "see tools reference").\n
|
|
|
|
The latest version of the library is also installed on any platform and it is available for linking through the
|
|
|
|
following two environment variables: $GRIB_API_INCLUDE $GRIB_API_LIB.\n\n
|
|
|
|
Here is a short summary on how to compile and link on ECMWF systems:\n
|
|
|
|
|
|
|
|
- ecgate, hpce, hpcf
|
|
|
|
\verbatim
|
|
|
|
> xlc -o foo foo.c $GRIB_API_INCLUDE $GRIB_API_LIB -lm
|
|
|
|
\endverbatim \n
|
|
|
|
\verbatim
|
|
|
|
> xlf90 -o foo foo.f90 $GRIB_API_INCLUDE $GRIB_API_LIB
|
|
|
|
\endverbatim\n
|
|
|
|
- linux cluster (C programs)
|
|
|
|
\verbatim
|
|
|
|
> gcc -m32 -o foo foo.c $GRIB_API_INCLUDE $GRIB_API_LIB
|
|
|
|
\endverbatim \n
|
|
|
|
- workstation (C programs)
|
|
|
|
\verbatim
|
|
|
|
> gcc -o foo foo.c $GRIB_API_INCLUDE $GRIB_API_LIB
|
|
|
|
\endverbatim \n
|
|
|
|
- linux cluster,workstation (Fortran programs)
|
|
|
|
\verbatim
|
|
|
|
> use pgf90
|
|
|
|
> pgf90 -o foo foo.f90 $GRIB_API_INCLUDE $GRIB_API_LIB
|
|
|
|
\endverbatim\n
|
|
|
|
|
|
|
|
|
|
|
|
*/
|