# 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. # # Scanning mode flags[1] scanningMode 'grib1/8.table' : edition_specific,no_copy; # Not flagbit numbers 7 to 0, while wmo is 1 to 8 flagbit iScansNegatively(scanningMode,7) : dump; flagbit jScansPositively(scanningMode,6) : dump; flagbit jPointsAreConsecutive(scanningMode,5) : dump; constant alternativeRowScanning=0 : dump; transient iScansPositively = !iScansNegatively : constraint; alias geography.iScansNegatively=iScansNegatively; alias geography.jScansPositively=jScansPositively; alias geography.jPointsAreConsecutive=jPointsAreConsecutive; flagbit scanningMode4(scanningMode,4) = 0: read_only; flagbit scanningMode5(scanningMode,3) = 0: read_only; flagbit scanningMode6(scanningMode,2) = 0: read_only; flagbit scanningMode7(scanningMode,1) = 0: read_only; flagbit scanningMode8(scanningMode,0) = 0: read_only; meta swapScanningX change_scanning_direction( values,Ni,Nj, iScansNegatively,jScansPositively, xFirst,xLast,x) : edition_specific,hidden,no_copy; alias swapScanningLon = swapScanningX; meta swapScanningY change_scanning_direction( values,Ni,Nj, iScansNegatively,jScansPositively, yFirst,yLast,y) : edition_specific,hidden,no_copy; alias swapScanningLat = swapScanningY; if (jPointsAreConsecutive) { alias numberOfRows=Ni; alias numberOfColumns=Nj; } else { alias numberOfRows=Nj; alias numberOfColumns=Ni; }