# Copyright 2005-2018 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. # unsigned [2] N2 : dump; unsigned [2] codedNumberOfFirstOrderPackedValues : no_copy ; unsigned [2] numberOfSecondOrderPackedValues : dump; # used to extend unsigned [1] extraValues=0 : hidden, edition_specific; meta numberOfGroups evaluate(codedNumberOfFirstOrderPackedValues + 65536 * extraValues); unsigned[1] groupWidths[numberOfGroups] :dump; meta bitsPerValue second_order_bits_per_value(values,binaryScaleFactor,decimalScaleFactor); position offsetBeforeData; if(bitmapPresent) { meta codedValues data_g1second_order_row_by_row_packing( #simple_packing args section4Length, offsetBeforeData, offsetSection4, unitsFactor, unitsBias, changingPrecision, numberOfCodedValues, bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, #g1second_order_row_by_row args halfByte, packingType, grid_ieee, precision, widthOfFirstOrderValues, N1, N2, numberOfGroups, numberOfSecondOrderPackedValues, extraValues, Ni, Nj, pl, jPointsAreConsecutive, groupWidths, bitmap ): read_only; alias data.packedValues = codedValues; meta values data_apply_bitmap(codedValues,bitmap,missingValue,binaryScaleFactor) : dump; } else { meta values data_g1second_order_row_by_row_packing( #simple_packing args section4Length, offsetBeforeData, offsetSection4, unitsFactor, unitsBias, changingPrecision, numberOfCodedValues, bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, #g1second_order_row_by_row args halfByte, packingType, grid_ieee, precision, widthOfFirstOrderValues, N1, N2, numberOfGroups, numberOfSecondOrderPackedValues, extraValues, Ni, Nj, pl, jPointsAreConsecutive, groupWidths ) : dump; alias data.packedValues = values; } transient numberOfCodedValues = numberOfSecondOrderPackedValues; meta packingError simple_packing_error(bitsPerValue,binaryScaleFactor,decimalScaleFactor,referenceValue,ibm) : no_copy; template statistics "common/statistics_grid.def";