# 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. # # START 1/local.98.9 ---------------------------------------------------------------------- # LOCAL 98 9 # # localDefinitionTemplate_009 # --------------------------- # # Description Octet Code Ksec1 Count # ----------- ----- ---- ----- ----- #localDefinitionNumber 41 I1 37 - #class 42 I1 38 - #type 43 I1 39 - #stream 44 I2 40 - #experimentVersionNumber 46 A4 41 - #forecastOrSingularVectorNumber 50 I2 42 - #! These elements are set to zero for perturbed forecast #if1 - IF_EQ 60 type #octetsSetToZero 52 PAD n/a 41 #ksec1SetToZero n/a PAD 43 13 #endif1 - ENDIF if1 #! These elements are coded for singular vectors #if2 - IF_NEQ 60 type #numberOfIterations 52 I2 43 - #numberOfSingularVectorsComputed 54 I2 44 - #normAtInitialTime 56 I1 45 - #normAtFinalTime 57 I1 46 - #multiplicationFactorForLatLong 58 I4 47 - #northWestLatitudeOfLPOArea 62 S4 48 - #northWestLongitudeOfLPOArea 66 S4 49 - #southEastLatitudeOfLPOArea 70 S4 50 - #southEastLongitudeOfLPOArea 74 S4 51 - #accuracyMultipliedByFactor 78 I4 52 - #numberOfSingularVectorsEvolved 82 I2 53 - #!Ritz numbers: #NINT(LOG10(RITZ)-5) 84 S4 54 - #NINT(RITZ/(EXP(LOG(10.0*KSEC1(54)) 88 S4 55 - #endif2 - ENDIF if2 #spareSetToZero 92 PAD n/a 1 # # 1-> 2 alias grib2LocalSectionPresent=present; constant grib2LocalSectionNumber=9; constant GRIBEXSection1Problem = 92 - section1Length ; template mars_labeling "grib1/mars_labeling.def"; unsigned[2] forecastOrSingularVectorNumber : dump; # # These elements are set to zero for perturbed forecast # constant perturbedType = 60; if(type == perturbedType) { # octetsSetToZero pad padding_loc9_1(41); } # # These elements are coded for singular vectors # if(type != perturbedType) { unsigned[2] numberOfIterations : dump; unsigned[2] numberOfSingularVectorsComputed : dump; unsigned[1] normAtInitialTime : dump ; unsigned[1] normAtFinalTime : dump ; unsigned[4] multiplicationFactorForLatLong : dump; signed[4] northWestLatitudeOfLPOArea : dump ; signed[4] northWestLongitudeOfLPOArea : dump; signed[4] southEastLatitudeOfLPOArea : dump; signed[4] southEastLongitudeOfLPOArea : dump; unsigned[4] accuracyMultipliedByFactor : dump; unsigned[2] numberOfSingularVectorsEvolved : dump; # Ritz numbers: signed[4] NINT_LOG10_RITZ : dump ; signed[4] NINT_RITZ_EXP : dump ; alias local.numberOfIterations= numberOfIterations; alias local.numberOfSingularVectorsComputed= numberOfSingularVectorsComputed ; alias local.normAtInitialTime= normAtInitialTime ; alias local.normAtFinalTime= normAtFinalTime ; alias local.multiplicationFactorForLatLong= multiplicationFactorForLatLong ; alias local.northWestLatitudeOfLPOArea= northWestLatitudeOfLPOArea ; alias local.northWestLongitudeOfLPOArea= northWestLongitudeOfLPOArea ; alias local.southEastLatitudeOfLPOArea= southEastLatitudeOfLPOArea ; alias local.southEastLongitudeOfLPOArea= southEastLongitudeOfLPOArea ; alias local.accuracyMultipliedByFactor= accuracyMultipliedByFactor ; alias local.numberOfSingularVectorsEvolved= numberOfSingularVectorsEvolved ; # Ritz numbers: alias local.NINT_LOG10_RITZ= NINT_LOG10_RITZ ; alias local.NINT_RITZ_EXP= NINT_RITZ_EXP ; } # spareSetToZero pad padding_loc9_2(1); # END 1/local.98.9 ---------------------------------------------------------------------- # END grib::edition