Emoslib is now deprecated


This release is the first providing support for octahedral reduced Gaussian grids.


Emoslib 4.2.2

Bug Fixes

  • [EMOS-220] - fixed interpolation of wave model parameters sub-areas straddling the Greenwich meridian

Emoslib 4.2.1



  • [EMOS-214] - encoding GRIB1 interpolation results with resolution up to 1/16 degrees
  • [EMOS-226] - removed obsolete GRIBex-based tools (changeExpver, changeGrib, changeStream, compareGribFiles, Dchange_grib, ginout, ginout_c, modify_grib)
  • Metadata set in double precision (grib_api grid_spec)
  • F-grids with arbitrary latitude lines between pole and equator
  • Unit testing improvements
  • Fix configuration when -DENABLE_TESTS=OFF
  • Fix for PGI/GNU mixed compiler builds

Emoslib 4.2.0


  • This release provides support for octahedral reduced Gaussian grids
  • This release requires grib_api/1.14.2
  • Tested against BUFR tables version 000406, please check also changes of the previous version 000405
  • Changes to HIRLAM functions interface, CHARACTER*1 HTYPE as new argument as follows:

  • HTYPE should be one of:
    • 'R' for "quasi-regular" reduced Gaussian grid (equivalent to 'N')
    • 'O' for octahedral reduced Gaussian grid, or
    • 'F' for regular Gaussian grid
    • 'U' for a user-defined gaussian grid
  • New HSH2GG function, controlling SH interpolation to Gaussian grids, replaces:
    • HSP2GG
    • HSP2GG2
    • HSP2GG3
  • New INTOUT parameter name CHARACTER*(*) HPARN "gridname", interpreting parameter value CHARACTER*(*) CHARV, describing a list of supported grids as in Gaussian Grids supported by MARS and ProdGen. This is the available method to set interpolation to octahedral reduced Gaussian grids.
  • Build system:

    • conditional compilation of components (interpolation, GRIBEX and BUFR)

    • revision of definitions and code reusing, stricter compilation options

  • FFTW is an optional Fast Fourier Transform library dependency, required for SH to octahedral reduced Gaussian grid interpolations
  • Improved interpolation testing
  • Added new HIRLAM LSM masks for specific reduced Gaussian grids:
    • N64, N96, N512, N128
    • O64, O80, O96, O128, O160, O200, O256, O320, O400, O512, O640, O1024, O1280
  • When using INTF2  (e.g. via MARS),  GRIB "latitudeOfLastGridPoint" for wave model interpolations in some cases was encoded wrongly to -79.0xx and is now corrected to be -90+0.5*inc (see MARS-492)

Known issues

  • This release is a preview release, and fails some unit tests. The failures happen when comparing interpolation results to reference data (bundled with the package), where the results GRIB header (wrong) are different from the reference data (correct). This is a known issue with grib_api/1.14.2 and will be resolved on grib_api/1.14.3. The affected tests are:
    • 8 - intuvp2_sh_vod_to_O80_compare (Failed)
    • 19 - intf2_sh_2t_to_O80_compare_cmp (Failed)
    • 30 - intf2_sh_vod_to_O80_compare_cmp (Failed)
    • 41 - intf2_sh_z_to_O80_compare_cmp (Failed)
    • 57 - intf2_N640_to_O80_compare (Failed)
    • 68 - intf2_O640_to_O80_compare_cmp (Failed)


  • [EMOS-112] - add support for new octahedral reduced gaussian grid - MARS and Metview
  • [EMOS-159] - add support for new octahedral reduced gaussian grid (as output)
  • [EMOS-177] - support RGG/octahedral grids (non-rotated)
  • [EMOS-178] - support RGG/octahedral grids (HIRLAM)
  • [EMOS-179] - support RGG/octahedral grids (LSM-dependant parameters)
  • [EMOS-183] - support gridname keyword
  • [EMOS-185] - add sh to octahedral interpolation
  • [EMOS-190] - tested interpolation on N64 grid
  • [EMOS-201] - tested against BUFR tables version 000406

Bug Fixes

  • [EMOS-168] - bufr_demo was removed (obsolete)

  • [EMOS-173] - build fix for emoslib on powerpc (partial fix: consistent types and declarations)

  • [EMOS-175] - fortint error in EMOSLIB (fix: consistent types and declarations)

  • [EMOS-186] - memory fault using FFTW

  • [EMOS-200] - incorrect information in pkg-config files