# (C) Copyright 2005- ECMWF.

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

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

ibmfloat realPart ;
position offsetBeforeData;
transient P=0;

_if (gribex_mode_on()) {
  transient computeLaplacianOperator=0 : hidden;
} else {
  transient computeLaplacianOperator=1 : hidden;
}

meta codedValues data_g1simple_packing(
   section4Length,
   offsetBeforeData,
   offsetSection4,
   unitsFactor,
   unitsBias,
   changingPrecision,
   numberOfCodedValues,
   bitsPerValue,
   referenceValue,
   binaryScaleFactor,
   decimalScaleFactor,
   optimizeScaleFactor,
   halfByte
): read_only;

meta values data_g1shsimple_packing(codedValues,realPart) : dump;
alias data.packedValues = values;
meta numberOfCodedValues g1number_of_coded_values_sh_simple(bitsPerValue,offsetBeforeData,offsetAfterData,halfByte,numberOfValues) : dump;

template statistics "common/statistics_spectral.def";
