# Copyright 2005-2017 ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# 
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#

# moved here to allow different bitsPerValue in second order packing
unsigned[1] bitsPerValue : dump ;
alias numberOfBitsContainingEachPackedValue = bitsPerValue;

# For grib1 -> grib2
#constant dataRepresentationTemplateNumber = ?;

# TODO
codetable[1] precision "grib1/precision.table" = 2 : dump,edition_specific;
position offsetBeforeData;
if( bitmapPresent || !GDSPresent ) {
  # For grib1 -> grib2
  constant bitMapIndicator = 0;
  meta   codedValues data_raw_packing(
                section4Length,
                offsetBeforeData,
                offsetSection4,
                numberOfCodedValues,
                precision
              );
  meta values data_apply_bitmap(codedValues,
                bitmap,missingValue,binaryScaleFactor) : dump;
  alias data.packedValues = codedValues; 
} else {
 # For grib1 -> grib2
 constant bitMapIndicator = 255;

  meta   values data_raw_packing(
                section4Length,
                offsetBeforeData,
                offsetSection4,
                numberOfCodedValues,
                precision
              );
  alias data.packedValues = values; 
}

meta numberOfCodedValues number_of_values_data_raw_packing(values,precision);

template statistics "common/statistics_grid.def";
