# (C) Copyright 2005- ECMWF.

# TEMPLATE 7.51, Spherical harmonics - complex packing
# Octets 6-(5+I*TS) : Data values from the unpacked subset
# (IEEE floating-point values on I octets)
# ????          data_values_from_the_unpacked_subset

constant GRIBEXShBugPresent = 0;
constant sphericalHarmonics = 1;
constant complexPacking = 1;

meta codedValues data_g2complex_packing(
          section7Length,
          offsetBeforeData,
          offsetSection7,

          unitsFactor,
      	  unitsBias,
          changingPrecision,
          numberOfValues,
          bitsPerValue,
          referenceValue,
          binaryScaleFactor,
          decimalScaleFactor,
          optimizeScaleFactor,

          GRIBEXShBugPresent,
          unpackedSubsetPrecision,

          laplacianOperatorIsSet,
          laplacianOperator,

          subSetJ,
          subSetK,
          subSetM,

          pentagonalResolutionParameterJ,
          pentagonalResolutionParameterK,
          pentagonalResolutionParameterM,

          numberOfValues
      ): read_only;

 meta data.packedValues data_sh_packed(
          section7Length,
          offsetBeforeData,
          offsetSection7,

          unitsFactor,
          unitsBias,
          changingPrecision,
          numberOfValues,
          bitsPerValue,
          referenceValue,
          binaryScaleFactor,
          decimalScaleFactor,
          optimizeScaleFactor,

          GRIBEXShBugPresent,
          unpackedSubsetPrecision,

          laplacianOperatorIsSet,
          laplacianOperator,

          subSetJ,
          subSetK,
          subSetM,

          pentagonalResolutionParameterJ,
          pentagonalResolutionParameterK,
          pentagonalResolutionParameterM
 ) : read_only;

 meta data.unpackedValues data_sh_unpacked(
          section7Length,
          offsetBeforeData,
          offsetSection7,

          unitsFactor,
          unitsBias,
          changingPrecision,
          numberOfValues,
          bitsPerValue,
          referenceValue,
          binaryScaleFactor,
          decimalScaleFactor,
          optimizeScaleFactor,

          GRIBEXShBugPresent,
          unpackedSubsetPrecision,

          laplacianOperatorIsSet,
          laplacianOperator,

          subSetJ,
          subSetK,
          subSetM,

          pentagonalResolutionParameterJ,
          pentagonalResolutionParameterK,
          pentagonalResolutionParameterM
 ) : read_only;

meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;
meta unpackedError simple_packing_error(zero,binaryScaleFactor,decimalScaleFactor,referenceValue,ieee) : no_copy;

meta values data_apply_bitmap(codedValues,
                                bitmap,
                                missingValue,
                                binaryScaleFactor,
                                numberOfDataPoints,
                                numberOfValues) : dump;

template statistics "common/statistics_spectral.def";
