-
Sub-task
-
Resolution: Fixed
-
Medium
-
None
-
Linux 32 bit
-
ECMWF
In g1second_order_general_extended_packing, firstOrderValues or so are restored
with grib_get_long_array(), and the restored values are stored in "long" type array.
So on 32 bit system, when "bits_per_value" is set to 32 and 32 bit unsigned values
are saved with grib_set_long_array(), restored values by grib_get_long_array()
are recognized as negative value, which results in wrong result
(in grib_second_order.sh).
For now, on linux 32 bit system, save 1 significant bit for signedness and
restrict bits_per_value to 31, and relax allowed error due to this change.
The proposal patch fixes the following test failure on Linux 32 bit:
# 167 - eccodes_t_grib_second_order
Note that that above test is disabled on Windows currently.