# (C) Copyright 2005- ECMWF.

# TEMPLATE 7.51, Spherical harmonics - complex packing

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";
